107 'Assign slots (JSON)'), |
107 'Assign slots (JSON)'), |
108 (r'^%(url_name)s/(?P<access_type>show_duplicates)/%(key_fields)s$', |
108 (r'^%(url_name)s/(?P<access_type>show_duplicates)/%(key_fields)s$', |
109 'soc.views.models.%(module_name)s.show_duplicates', |
109 'soc.views.models.%(module_name)s.show_duplicates', |
110 'Show duplicate slot assignments'), |
110 'Show duplicate slot assignments'), |
111 (r'^%(url_name)s/(?P<access_type>assigned_proposals)/%(key_fields)s$', |
111 (r'^%(url_name)s/(?P<access_type>assigned_proposals)/%(key_fields)s$', |
112 'soc.views.models.%(module_name)s.assigned_proposals', |
112 'soc.views.models.%(module_name)s.assigned_proposals', |
113 "Assigned proposals for multiple orgs"), |
113 "Assigned proposals for multiple orgs"), |
|
114 (r'^%(url_name)s/(?P<access_type>accepted_orgs)/%(key_fields)s$', |
|
115 'soc.views.models.%(module_name)s.accepted_orgs', |
|
116 "List all accepted orgs"), |
114 ] |
117 ] |
115 |
118 |
116 new_params['extra_django_patterns'] = patterns |
119 new_params['extra_django_patterns'] = patterns |
117 |
120 |
118 # TODO add clean field to check for uniqueness in link_id and scope_path |
121 # TODO add clean field to check for uniqueness in link_id and scope_path |
162 new_params['references'] = document_references |
165 new_params['references'] = document_references |
163 |
166 |
164 params = dicts.merge(params, new_params, sub_merge=True) |
167 params = dicts.merge(params, new_params, sub_merge=True) |
165 |
168 |
166 super(View, self).__init__(params=params) |
169 super(View, self).__init__(params=params) |
|
170 |
|
171 @decorators.merge_params |
|
172 @decorators.check_access |
|
173 def acceptedOrgs(self, request, access_type, |
|
174 page_name=None, params=None, filter=None, **kwargs): |
|
175 """See base.View.list. |
|
176 """ |
|
177 |
|
178 contents = [] |
|
179 logic = params['logic'] |
|
180 |
|
181 program_entity = logic.getFromKeyFieldsOr404(kwargs) |
|
182 |
|
183 filter = { |
|
184 'status': 'accepted', |
|
185 'scope': program_entity, |
|
186 } |
|
187 |
|
188 from soc.views.models import org_app as org_app_view |
|
189 aa_params = org_app_view.view.getParams().copy() # accepted applications |
|
190 |
|
191 # define the list redirect action to show the notification |
|
192 aa_params['list_action'] = (redirects.getPublicRedirect, aa_params) |
|
193 aa_params['list_description'] = ugettext( |
|
194 "An overview of accepted org applications.") |
|
195 |
|
196 aa_list = lists.getListContent(request, aa_params, filter, idx=0, |
|
197 need_content=True) |
|
198 |
|
199 if aa_list: |
|
200 contents.append(aa_list) |
|
201 |
|
202 filter['status'] = ['new', 'active'] |
|
203 |
|
204 from soc.views.models import organization as org_view |
|
205 ao_params = org_view.view.getParams().copy() # active orgs |
|
206 |
|
207 ao_params['list_action'] = (redirects.getHomeRedirect, ao_params) |
|
208 ao_params['list_description'] = ugettext( |
|
209 "An overview of all organizations.") |
|
210 |
|
211 ao_list = lists.getListContent(request, ao_params, filter, idx=1, |
|
212 need_content=True) |
|
213 |
|
214 if ao_list: |
|
215 contents.append(ao_list) |
|
216 |
|
217 return self._list(request, params, contents, page_name) |
167 |
218 |
168 @decorators.merge_params |
219 @decorators.merge_params |
169 @decorators.check_access |
220 @decorators.check_access |
170 def slots(self, request, acces_type, page_name=None, params=None, **kwargs): |
221 def slots(self, request, acces_type, page_name=None, params=None, **kwargs): |
171 """Returns a JSON object with all orgs allocation. |
222 """Returns a JSON object with all orgs allocation. |
568 if timeline_helper.isActivePeriod(timeline_entity, 'student_signup'): |
619 if timeline_helper.isActivePeriod(timeline_entity, 'student_signup'): |
569 # this user does not have a role yet for this program |
620 # this user does not have a role yet for this program |
570 items += [('/student/apply/%s' % (program_entity.key().name()), |
621 items += [('/student/apply/%s' % (program_entity.key().name()), |
571 "Register as a Student", 'any_access')] |
622 "Register as a Student", 'any_access')] |
572 |
623 |
573 if timeline_helper.isAfterEvent(timeline_entity, |
624 deadline = 'accepted_organization_announced_deadline' |
574 'accepted_organization_announced_deadline'): |
625 |
|
626 if timeline_helper.isAfterEvent(timeline_entity, deadline): |
|
627 url = redirects.getAcceptedOrgsRedirect(program_entity, params) |
575 # add a link to list all the organizations |
628 # add a link to list all the organizations |
576 items += [(redirects.getPublicListRedirect(program_entity, |
629 items += [(url, "List participating Organizations", 'any_access')] |
577 {'url_name': 'org'}), |
|
578 "List participating Organizations", 'any_access')] |
|
579 |
630 |
580 if not student_entity: |
631 if not student_entity: |
581 # add apply to become a mentor link |
632 # add apply to become a mentor link |
582 items += [('/org/apply_mentor/%s' % (program_entity.key().name()), |
633 items += [('/org/apply_mentor/%s' % (program_entity.key().name()), |
583 "Apply to become a Mentor", 'any_access')] |
634 "Apply to become a Mentor", 'any_access')] |