app/soc/views/models/program.py
changeset 1303 08433090cff8
parent 1281 b42088df3958
child 1307 091a21cf3627
equal deleted inserted replaced
1302:54e736a805b5 1303:08433090cff8
    72     new_params['scope_view'] = sponsor_view
    72     new_params['scope_view'] = sponsor_view
    73     new_params['scope_redirect'] = redirects.getCreateRedirect
    73     new_params['scope_redirect'] = redirects.getCreateRedirect
    74 
    74 
    75     new_params['name'] = "Program"
    75     new_params['name'] = "Program"
    76     new_params['sidebar_grouping'] = 'Programs'
    76     new_params['sidebar_grouping'] = 'Programs'
       
    77     new_params['document_prefix'] = "program"
       
    78 
    77 
    79 
    78     new_params['extra_dynaexclude'] = ['timeline', 'org_admin_agreement', 
    80     new_params['extra_dynaexclude'] = ['timeline', 'org_admin_agreement', 
    79         'mentor_agreement', 'student_agreement']
    81         'mentor_agreement', 'student_agreement']
    80 
    82 
    81     # TODO add clean field to check for uniqueness in link_id and scope_path
    83     # TODO add clean field to check for uniqueness in link_id and scope_path
    85         'scope_path': forms.CharField(widget=forms.HiddenInput, required=True),
    87         'scope_path': forms.CharField(widget=forms.HiddenInput, required=True),
    86         'workflow': forms.ChoiceField(choices=[('gsoc','Project-based'),
    88         'workflow': forms.ChoiceField(choices=[('gsoc','Project-based'),
    87             ('ghop','Task-based')], required=True),
    89             ('ghop','Task-based')], required=True),
    88         }
    90         }
    89 
    91 
    90     new_params['edit_extra_dynafields'] = {
    92     reference_fields = [
    91         'workflow': forms.CharField(widget=widgets.ReadOnlyInput(),
    93         ('org_admin_agreement_link_id', soc.models.work.Work.link_id.help_text,
    92             required=True),
    94          ugettext('Organization Admin Agreement Document link ID')),
    93         'org_admin_agreement_link_id': widgets.ReferenceField(
    95         ('mentor_agreement_link_id', soc.models.work.Work.link_id.help_text,
    94             reference_url='document', filter=['__scoped__'],
    96          ugettext('Mentor Agreement Document link ID')),
    95             required=False, label=ugettext(
    97         ('student_agreement_link_id', soc.models.work.Work.link_id.help_text,
    96                 'Organization Admin Agreement Document link ID'),
    98          ugettext('Student Agreement Document link ID')),
    97             help_text=soc.models.work.Work.link_id.help_text),
    99         ('home_link_id', soc.models.work.Work.link_id.help_text,
    98         'mentor_agreement_link_id': widgets.ReferenceField(
   100          ugettext('Home page Document link ID')),
    99             reference_url='document', filter=['__scoped__'],
   101         ('tos_link_id', soc.models.work.Work.link_id.help_text,
   100             required=False, label=ugettext('Mentor Agreement Document link ID'),
   102          ugettext('Terms of Service Document link ID'))
   101             help_text=soc.models.work.Work.link_id.help_text),
   103         ]
   102         'student_agreement_link_id': widgets.ReferenceField(
   104 
   103             reference_url='document', filter=['__scoped__'],
   105     result = {}
   104             required=False, label=ugettext('Student Agreement Document link ID'),
   106 
   105             help_text=soc.models.work.Work.link_id.help_text),
   107     for key, help_text, label in reference_fields:
   106         'home_link_id': widgets.ReferenceField(
   108       result[key] = widgets.ReferenceField(
   107             reference_url='document', filter=['__scoped__'],
   109           reference_url='document', filter=['__scoped__'],
   108             required=False, label=ugettext('Home page Document link ID'),
   110           filter_fields={'prefix': new_params['document_prefix']},
   109             help_text=soc.models.work.Work.link_id.help_text),
   111           required=False, label=label, help_text=help_text)
   110         'tos_link_id': widgets.ReferenceField(
   112 
   111             reference_url='document', filter=['__scoped__'],
   113     result['workflow'] = forms.CharField(widget=widgets.ReadOnlyInput(),
   112             required=False, label=ugettext('Terms of Service Document link ID'),
   114                                          required=True)
   113             help_text=soc.models.work.Work.link_id.help_text),
   115 
   114         }
   116     new_params['edit_extra_dynafields'] = result
       
   117 
   115 
   118 
   116     references = [
   119     references = [
   117         ('org_admin_agreement_link_id', 'org_admin_agreement', document_logic,
   120         ('org_admin_agreement_link_id', 'org_admin_agreement', document_logic,
   118          lambda x: x.org_admin_agreement),
   121          lambda x: x.org_admin_agreement),
   119         ('mentor_agreement_link_id', 'mentor_agreement', document_logic,
   122         ('mentor_agreement_link_id', 'mentor_agreement', document_logic,