25 |
25 |
26 from django import forms |
26 from django import forms |
27 |
27 |
28 from soc.logic import cleaning |
28 from soc.logic import cleaning |
29 from soc.logic import dicts |
29 from soc.logic import dicts |
|
30 from soc.logic.models import program as program_logic |
30 from soc.views import helper |
31 from soc.views import helper |
31 from soc.views.helper import access |
32 from soc.views.helper import access |
32 from soc.views.helper import redirects |
33 from soc.views.helper import redirects |
|
34 from soc.views.helper import widgets |
33 from soc.views.models import base |
35 from soc.views.models import base |
34 from soc.views.models import document as document_view |
36 from soc.views.models import document as document_view |
35 from soc.views.models import sponsor as sponsor_view |
37 from soc.views.models import sponsor as sponsor_view |
36 from soc.views.sitemap import sidebar |
38 from soc.views.sitemap import sidebar |
37 |
|
38 import gsoc.models.timeline |
|
39 import soc.models.timeline |
|
40 |
39 |
41 import soc.logic.models.program |
40 import soc.logic.models.program |
42 |
41 |
43 |
42 |
44 class View(base.View): |
43 class View(base.View): |
80 'workflow' : forms.ChoiceField(choices=[('gsoc','Project-based'), |
79 'workflow' : forms.ChoiceField(choices=[('gsoc','Project-based'), |
81 ('ghop','Task-based')], required=True), |
80 ('ghop','Task-based')], required=True), |
82 'clean_link_id': cleaning.clean_link_id, |
81 'clean_link_id': cleaning.clean_link_id, |
83 } |
82 } |
84 |
83 |
|
84 new_params['edit_extra_dynafields'] = { |
|
85 'workflow': forms.CharField(widget=widgets.ReadOnlyInput(), |
|
86 required=True), |
|
87 } |
|
88 |
85 params = dicts.merge(params, new_params) |
89 params = dicts.merge(params, new_params) |
86 |
90 |
87 super(View, self).__init__(params=params) |
91 super(View, self).__init__(params=params) |
88 |
92 |
89 def _editPost(self, request, entity, fields): |
93 def _editPost(self, request, entity, fields): |
99 |
103 |
100 def _createTimelineForType(self, fields): |
104 def _createTimelineForType(self, fields): |
101 """Creates and stores a timeline model for the given type of program. |
105 """Creates and stores a timeline model for the given type of program. |
102 """ |
106 """ |
103 |
107 |
104 timelines = {'gsoc' : gsoc.logic.models.timeline.logic, |
|
105 'ghop' : soc.logic.models.timeline.logic,} |
|
106 |
|
107 workflow = fields['workflow'] |
108 workflow = fields['workflow'] |
108 |
109 |
109 timeline_logic = timelines[workflow] |
110 timeline_logic = program_logic.logic.TIMELINE_LOGIC[workflow] |
110 |
111 |
111 key_fields = self._logic.getKeyFieldsFromDict(fields) |
112 key_fields = self._logic.getKeyFieldsFromDict(fields) |
112 key_name = self._logic.getKeyNameForFields(key_fields) |
113 key_name = self._logic.getKeyNameForFields(key_fields) |
113 |
114 |
114 properties = {'scope_path': key_name} |
115 properties = {'scope_path': key_name} |