app/soc/views/models/organization.py
changeset 1154 77276e2c46f7
parent 1126 4fc86db70a76
child 1205 2e88261aba72
equal deleted inserted replaced
1153:4804f7f5a7c0 1154:77276e2c46f7
    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 org_app as org_app_logic
    30 from soc.views.helper import access
    31 from soc.views.helper import access
       
    32 from soc.views.helper import dynaform
    31 from soc.views.helper import redirects
    33 from soc.views.helper import redirects
       
    34 from soc.views.helper import widgets
    32 from soc.views.models import group
    35 from soc.views.models import group
    33 from soc.views.models import program as program_view
    36 from soc.views.models import program as program_view
    34 
    37 
    35 import soc.models.organization
    38 import soc.models.organization
    36 import soc.logic.models.organization
    39 import soc.logic.models.organization
    55     rights['delete'] = ['checkIsDeveloper']
    58     rights['delete'] = ['checkIsDeveloper']
    56     rights['home'] = ['allow']
    59     rights['home'] = ['allow']
    57     rights['list'] = ['checkIsDeveloper']
    60     rights['list'] = ['checkIsDeveloper']
    58     rights['list_requests'] = ['checkIsDeveloper']
    61     rights['list_requests'] = ['checkIsDeveloper']
    59     rights['list_roles'] = ['checkIsDeveloper']
    62     rights['list_roles'] = ['checkIsDeveloper']
    60     # TODO(ljvderijk) implement Org application process
    63     rights['applicant'] = ['checkIsDeveloper']
    61     #rights['applicant'] = ['checkIsDeveloper']
       
    62 
    64 
    63     new_params = {}
    65     new_params = {}
    64     new_params['logic'] = soc.logic.models.organization.logic
    66     new_params['logic'] = soc.logic.models.organization.logic
    65 
    67 
    66     new_params['scope_view'] = program_view
    68     new_params['scope_view'] = program_view
    72 
    74 
    73     new_params['public_template'] = 'soc/organization/public.html'
    75     new_params['public_template'] = 'soc/organization/public.html'
    74     new_params['list_row'] = 'soc/organization/list/row.html'
    76     new_params['list_row'] = 'soc/organization/list/row.html'
    75     new_params['list_heading'] = 'soc/organization/list/heading.html'
    77     new_params['list_heading'] = 'soc/organization/list/heading.html'
    76 
    78 
       
    79     new_params['application_logic'] = org_app_logic
       
    80     new_params['group_applicant_url'] = True
       
    81 
    77     #TODO(ljvderijk) add cleaning methods to not overwrite existing orgs
    82     #TODO(ljvderijk) add cleaning methods to not overwrite existing orgs
    78     new_params['create_extra_dynafields'] = {
    83     new_params['create_extra_dynafields'] = {
    79         'scope_path': forms.CharField(widget=forms.HiddenInput,
    84         'scope_path': forms.CharField(widget=forms.HiddenInput,
    80                                    required=True),
    85                                    required=True),
    81         'clean_link_id': cleaning.clean_link_id('link_id'),
    86         'clean_link_id': cleaning.clean_link_id('link_id'),
    83 
    88 
    84     params = dicts.merge(params, new_params)
    89     params = dicts.merge(params, new_params)
    85 
    90 
    86     super(View, self).__init__(params=params)
    91     super(View, self).__init__(params=params)
    87 
    92 
       
    93     # create and store the special form for applicants
       
    94     updated_fields = {
       
    95         'link_id': forms.CharField(widget=widgets.ReadOnlyInput(),
       
    96             required=False),
       
    97         'clean_link_id': cleaning.clean_link_id('link_id')}
       
    98 
       
    99     applicant_create_form = dynaform.extendDynaForm(
       
   100         dynaform = self._params['create_form'],
       
   101         dynafields = updated_fields)
       
   102 
       
   103     params['applicant_create_form'] = applicant_create_form
       
   104 
       
   105 
    88     # TODO(ljvderijk) define several menu items for organizations
   106     # TODO(ljvderijk) define several menu items for organizations
    89     #def _getExtraMenuItems(self, role_description, params=None):
   107     #def _getExtraMenuItems(self, role_description, params=None):
    90 
   108 
    91 
   109 
    92 view = View()
   110 view = View()
    93 
   111 
       
   112 applicant = view.applicant
    94 create = view.create
   113 create = view.create
    95 delete = view.delete
   114 delete = view.delete
    96 edit = view.edit
   115 edit = view.edit
    97 home = view.home
   116 home = view.home
    98 list = view.list
   117 list = view.list