app/soc/views/models/program.py
changeset 1260 594c6b500378
parent 1257 12d2bf06698f
child 1273 324a1ecc4e88
equal deleted inserted replaced
1259:e7ae623d7b8e 1260:594c6b500378
    22     '"Lennard de Rijk" <ljvderijk@gmail.com>',
    22     '"Lennard de Rijk" <ljvderijk@gmail.com>',
    23   ]
    23   ]
    24 
    24 
    25 
    25 
    26 from django import forms
    26 from django import forms
       
    27 from django.utils.translation import ugettext
    27 
    28 
    28 from soc.logic import dicts
    29 from soc.logic import dicts
    29 from soc.logic.helper import timeline as timeline_helper
    30 from soc.logic.helper import timeline as timeline_helper
    30 from soc.logic.models import program as program_logic
    31 from soc.logic.models import program as program_logic
    31 from soc.logic.models import host as host_logic
    32 from soc.logic.models import host as host_logic
    39 from soc.views.models import document as document_view
    40 from soc.views.models import document as document_view
    40 from soc.views.models import sponsor as sponsor_view
    41 from soc.views.models import sponsor as sponsor_view
    41 from soc.views.sitemap import sidebar
    42 from soc.views.sitemap import sidebar
    42 
    43 
    43 import soc.logic.models.program
    44 import soc.logic.models.program
       
    45 import soc.models.work
    44 
    46 
    45 
    47 
    46 class View(presence_with_tos.View):
    48 class View(presence_with_tos.View):
    47   """View methods for the Program model.
    49   """View methods for the Program model.
    48   """
    50   """
    70     new_params['scope_redirect'] = redirects.getCreateRedirect
    72     new_params['scope_redirect'] = redirects.getCreateRedirect
    71 
    73 
    72     new_params['name'] = "Program"
    74     new_params['name'] = "Program"
    73     new_params['sidebar_grouping'] = 'Programs'
    75     new_params['sidebar_grouping'] = 'Programs'
    74 
    76 
    75     new_params['extra_dynaexclude'] = ['timeline']
    77     new_params['extra_dynaexclude'] = ['timeline', 'org_admin_agreement', 
       
    78         'mentor_agreement', 'student_agreement']
    76 
    79 
    77     # TODO add clean field to check for uniqueness in link_id and scope_path
    80     # TODO add clean field to check for uniqueness in link_id and scope_path
    78     new_params['create_extra_dynafields'] = {
    81     new_params['create_extra_dynafields'] = {
    79         'description': forms.fields.CharField(widget=helper.widgets.TinyMCE(
    82         'description': forms.fields.CharField(widget=helper.widgets.TinyMCE(
    80             attrs={'rows':10, 'cols':40})),
    83             attrs={'rows':10, 'cols':40})),
    81 
       
    82         'scope_path': forms.CharField(widget=forms.HiddenInput, required=True),
    84         'scope_path': forms.CharField(widget=forms.HiddenInput, required=True),
    83 
       
    84         'workflow': forms.ChoiceField(choices=[('gsoc','Project-based'),
    85         'workflow': forms.ChoiceField(choices=[('gsoc','Project-based'),
    85             ('ghop','Task-based')], required=True),
    86             ('ghop','Task-based')], required=True),
    86         }
    87         }
    87 
    88 
    88     new_params['edit_extra_dynafields'] = {
    89     new_params['edit_extra_dynafields'] = {
    89         'workflow': forms.CharField(widget=widgets.ReadOnlyInput(),
    90         'workflow': forms.CharField(widget=widgets.ReadOnlyInput(),
    90                                    required=True),
    91             required=True),
       
    92         'org_admin_agreement_link_id': widgets.ReferenceField(
       
    93             reference_url='document', filter=['scope_path'],
       
    94             required=False, label=ugettext(
       
    95                 'Organization Admin Agreement Document link ID'),
       
    96             help_text=soc.models.work.Work.link_id.help_text),
       
    97         'mentor_agreement_link_id': widgets.ReferenceField(
       
    98             reference_url='document', filter=['scope_path'],
       
    99             required=False, label=ugettext('Mentor Agreement Document link ID'),
       
   100             help_text=soc.models.work.Work.link_id.help_text),
       
   101         'student_agreement_link_id': widgets.ReferenceField(
       
   102             reference_url='document', filter=['scope_path'],
       
   103             required=False, label=ugettext('Student Agreement Document link ID'),
       
   104             help_text=soc.models.work.Work.link_id.help_text),
    91         }
   105         }
    92 
   106 
    93     params = dicts.merge(params, new_params)
   107     params = dicts.merge(params, new_params, sub_merge=True)
    94 
   108 
    95     super(View, self).__init__(params=params)
   109     super(View, self).__init__(params=params)
    96 
   110 
    97   def _editPost(self, request, entity, fields):
   111   def _editPost(self, request, entity, fields):
    98     """See base._editPost().
   112     """See base._editPost().