diff -r ceec88091db8 -r c904033c58e1 app/soc/modules/ghop/views/models/program.py --- a/app/soc/modules/ghop/views/models/program.py Fri Sep 18 21:59:42 2009 +0530 +++ b/app/soc/modules/ghop/views/models/program.py Fri Sep 18 18:40:17 2009 +0200 @@ -91,6 +91,9 @@ rights['edit'] = [('checkIsHostForProgram', [ghop_program_logic.logic])] rights['delete'] = ['checkIsDeveloper'] + rights['accepted_orgs'] = [('checkIsAfterEvent', + ['student_signup_start', + '__all__', ghop_program_logic.logic])] rights['task_difficulty'] = [('checkIsHostForProgram', [ghop_program_logic.logic])] rights['task_type'] = [('checkIsHostForProgram', @@ -417,7 +420,7 @@ "Register as a Student", 'any_access')] if timeline_helper.isAfterEvent(timeline_entity, 'org_signup_start'): - url = ghop_redirects.getParticipatingOrgsRedirect( + url = redirects.getAcceptedOrgsRedirect( ghop_program_entity, params) # add a link to list all the organizations items += [(url, "List participating Organizations", 'any_access')] @@ -587,10 +590,50 @@ return http.HttpResponse(tag_value) + @decorators.merge_params + @decorators.check_access + def acceptedOrgs(self, request, access_type, + page_name=None, params=None, filter=None, **kwargs): + """List all the accepted orgs for the given program. + """ + + from soc.modules.ghop.views.models.organization import view as \ + ghop_org_view + + contents = [] + logic = params['logic'] + + ghop_program_entity = logic.getFromKeyFieldsOr404(kwargs) + + ao_params = ghop_org_view.getParams().copy() + ao_params['list_action'] = (redirects.getHomeRedirect, + ao_params) + ao_params['list_description'] = self.DEF_PARTICIPATING_ORGS_MSG_FMT % { + 'name': ghop_program_entity.name + } + + filter = { + 'scope': ghop_program_entity, + 'status': ['new', 'active'], + } + + order = ['name'] + + ao_list = lists.getListContent(request, ao_params, filter=filter, + order=order, idx=0) + + contents.append(ao_list) + + params = params.copy() + params['list_msg'] = ghop_program_entity.accepted_orgs_msg + + return self._list(request, params, contents, page_name) + view = View() admin = decorators.view(view.admin) +accepted_orgs = decorators.view(view.acceptedOrgs) assign_task_quotas = decorators.view(view.assignTaskQuotas) create = decorators.view(view.create) delete = decorators.view(view.delete)