29 from soc.logic import cleaning |
29 from soc.logic import cleaning |
30 from soc.logic import dicts |
30 from soc.logic import dicts |
31 from soc.logic.helper import timeline as timeline_helper |
31 from soc.logic.helper import timeline as timeline_helper |
32 from soc.logic.models import host as host_logic |
32 from soc.logic.models import host as host_logic |
33 from soc.logic.models import mentor as mentor_logic |
33 from soc.logic.models import mentor as mentor_logic |
|
34 from soc.logic.models import organization as org_logic |
34 from soc.logic.models import org_admin as org_admin_logic |
35 from soc.logic.models import org_admin as org_admin_logic |
35 from soc.logic.models import program as program_logic |
36 from soc.logic.models import program as program_logic |
36 from soc.logic.models import student as student_logic |
37 from soc.logic.models import student as student_logic |
37 from soc.logic.models.document import logic as document_logic |
38 from soc.logic.models.document import logic as document_logic |
38 from soc.views import helper |
39 from soc.views import helper |
39 from soc.views import out_of_band |
40 from soc.views import out_of_band |
40 from soc.views.helper import access |
41 from soc.views.helper import access |
41 from soc.views.helper import decorators |
42 from soc.views.helper import decorators |
|
43 from soc.views.helper import lists |
42 from soc.views.helper import redirects |
44 from soc.views.helper import redirects |
43 from soc.views.helper import widgets |
45 from soc.views.helper import widgets |
44 from soc.views.models import presence |
46 from soc.views.models import presence |
45 from soc.views.models import document as document_view |
47 from soc.views.models import document as document_view |
46 from soc.views.models import sponsor as sponsor_view |
48 from soc.views.models import sponsor as sponsor_view |
81 new_params['sidebar_grouping'] = 'Programs' |
83 new_params['sidebar_grouping'] = 'Programs' |
82 new_params['document_prefix'] = "program" |
84 new_params['document_prefix'] = "program" |
83 |
85 |
84 new_params['extra_dynaexclude'] = ['timeline', 'org_admin_agreement', |
86 new_params['extra_dynaexclude'] = ['timeline', 'org_admin_agreement', |
85 'mentor_agreement', 'student_agreement'] |
87 'mentor_agreement', 'student_agreement'] |
|
88 |
|
89 patterns = [] |
|
90 patterns += [ |
|
91 (r'^%(url_name)s/(?P<access_type>assign_slots)/%(key_fields)s$', |
|
92 'soc.views.models.%(module_name)s.assign_slots', |
|
93 'Assign slots'), |
|
94 ] |
|
95 |
|
96 new_params['extra_django_patterns'] = patterns |
|
97 |
86 |
98 |
87 # TODO add clean field to check for uniqueness in link_id and scope_path |
99 # TODO add clean field to check for uniqueness in link_id and scope_path |
88 new_params['create_extra_dynaproperties'] = { |
100 new_params['create_extra_dynaproperties'] = { |
89 'description': forms.fields.CharField(widget=helper.widgets.TinyMCE( |
101 'description': forms.fields.CharField(widget=helper.widgets.TinyMCE( |
90 attrs={'rows':10, 'cols':40})), |
102 attrs={'rows':10, 'cols':40})), |
131 new_params['references'] = document_references |
143 new_params['references'] = document_references |
132 |
144 |
133 params = dicts.merge(params, new_params, sub_merge=True) |
145 params = dicts.merge(params, new_params, sub_merge=True) |
134 |
146 |
135 super(View, self).__init__(params=params) |
147 super(View, self).__init__(params=params) |
|
148 |
|
149 @decorators.merge_params |
|
150 @decorators.check_access |
|
151 def assignSlots(self, request, access_type, page_name=None, |
|
152 params=None, **kwargs): |
|
153 """View that allows to assign slots to orgs. |
|
154 """ |
|
155 |
|
156 from soc.views.models import organization as organization_view |
|
157 params = organization_view.view.getParams() |
|
158 params['list_heading'] = 'soc/program/allocation/heading.html' |
|
159 params['list_row'] = 'soc/program/allocation/row.html' |
|
160 |
|
161 program = program_logic.logic.getFromKeyFields(kwargs) |
|
162 |
|
163 filter = { |
|
164 'scope': program, |
|
165 } |
|
166 |
|
167 content = lists.getListContent(request, params, filter=filter) |
|
168 contents = [content] |
|
169 |
|
170 return self._list(request, params, contents, page_name) |
136 |
171 |
137 def _editPost(self, request, entity, fields): |
172 def _editPost(self, request, entity, fields): |
138 """See base._editPost(). |
173 """See base._editPost(). |
139 """ |
174 """ |
140 |
175 |
331 |
366 |
332 |
367 |
333 view = View() |
368 view = View() |
334 |
369 |
335 admin = decorators.view(view.admin) |
370 admin = decorators.view(view.admin) |
|
371 assign_slots = decorators.view(view.assignSlots) |
336 create = decorators.view(view.create) |
372 create = decorators.view(view.create) |
337 delete = decorators.view(view.delete) |
373 delete = decorators.view(view.delete) |
338 edit = decorators.view(view.edit) |
374 edit = decorators.view(view.edit) |
339 list = decorators.view(view.list) |
375 list = decorators.view(view.list) |
340 public = decorators.view(view.public) |
376 public = decorators.view(view.public) |