app/soc/views/models/program.py
changeset 778 bc13cd968946
parent 777 16dcdb8f3357
child 799 30a912906a57
equal deleted inserted replaced
777:16dcdb8f3357 778:bc13cd968946
    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}