app/soc/views/models/program.py
changeset 1705 1dbce30b5757
parent 1700 599a5ff8f422
child 1706 9609e2a0d7d7
equal deleted inserted replaced
1704:b581fdfd6bb1 1705:1dbce30b5757
    29 from soc.logic import cleaning
    29 from soc.logic import cleaning
    30 from soc.logic import dicts
    30 from soc.logic import dicts
    31 from soc.logic.helper import timeline as timeline_helper
    31 from soc.logic.helper import timeline as timeline_helper
    32 from soc.logic.models import host as host_logic
    32 from soc.logic.models import host as host_logic
    33 from soc.logic.models import mentor as mentor_logic
    33 from soc.logic.models import mentor as mentor_logic
       
    34 from soc.logic.models import organization as org_logic
    34 from soc.logic.models import org_admin as org_admin_logic
    35 from soc.logic.models import org_admin as org_admin_logic
    35 from soc.logic.models import program as program_logic
    36 from soc.logic.models import program as program_logic
    36 from soc.logic.models import student as student_logic
    37 from soc.logic.models import student as student_logic
    37 from soc.logic.models.document import logic as document_logic
    38 from soc.logic.models.document import logic as document_logic
    38 from soc.views import helper
    39 from soc.views import helper
    39 from soc.views import out_of_band
    40 from soc.views import out_of_band
    40 from soc.views.helper import access
    41 from soc.views.helper import access
    41 from soc.views.helper import decorators
    42 from soc.views.helper import decorators
       
    43 from soc.views.helper import lists
    42 from soc.views.helper import redirects
    44 from soc.views.helper import redirects
    43 from soc.views.helper import widgets
    45 from soc.views.helper import widgets
    44 from soc.views.models import presence
    46 from soc.views.models import presence
    45 from soc.views.models import document as document_view
    47 from soc.views.models import document as document_view
    46 from soc.views.models import sponsor as sponsor_view
    48 from soc.views.models import sponsor as sponsor_view
    81     new_params['sidebar_grouping'] = 'Programs'
    83     new_params['sidebar_grouping'] = 'Programs'
    82     new_params['document_prefix'] = "program"
    84     new_params['document_prefix'] = "program"
    83 
    85 
    84     new_params['extra_dynaexclude'] = ['timeline', 'org_admin_agreement',
    86     new_params['extra_dynaexclude'] = ['timeline', 'org_admin_agreement',
    85         'mentor_agreement', 'student_agreement']
    87         'mentor_agreement', 'student_agreement']
       
    88 
       
    89     patterns = []
       
    90     patterns += [
       
    91         (r'^%(url_name)s/(?P<access_type>assign_slots)/%(key_fields)s$',
       
    92           'soc.views.models.%(module_name)s.assign_slots',
       
    93           'Assign slots'),
       
    94         ]
       
    95 
       
    96     new_params['extra_django_patterns'] = patterns
       
    97 
    86 
    98 
    87     # TODO add clean field to check for uniqueness in link_id and scope_path
    99     # TODO add clean field to check for uniqueness in link_id and scope_path
    88     new_params['create_extra_dynaproperties'] = {
   100     new_params['create_extra_dynaproperties'] = {
    89         'description': forms.fields.CharField(widget=helper.widgets.TinyMCE(
   101         'description': forms.fields.CharField(widget=helper.widgets.TinyMCE(
    90             attrs={'rows':10, 'cols':40})),
   102             attrs={'rows':10, 'cols':40})),
   131     new_params['references'] = document_references
   143     new_params['references'] = document_references
   132 
   144 
   133     params = dicts.merge(params, new_params, sub_merge=True)
   145     params = dicts.merge(params, new_params, sub_merge=True)
   134 
   146 
   135     super(View, self).__init__(params=params)
   147     super(View, self).__init__(params=params)
       
   148 
       
   149   @decorators.merge_params
       
   150   @decorators.check_access
       
   151   def assignSlots(self, request, access_type, page_name=None,
       
   152            params=None, **kwargs):
       
   153     """View that allows to assign slots to orgs.
       
   154     """
       
   155 
       
   156     from soc.views.models import organization as organization_view
       
   157     params = organization_view.view.getParams()
       
   158     params['list_heading'] = 'soc/program/allocation/heading.html'
       
   159     params['list_row'] = 'soc/program/allocation/row.html'
       
   160 
       
   161     program = program_logic.logic.getFromKeyFields(kwargs)
       
   162 
       
   163     filter = {
       
   164         'scope': program,
       
   165         }
       
   166 
       
   167     content = lists.getListContent(request, params, filter=filter)
       
   168     contents = [content]
       
   169 
       
   170     return self._list(request, params, contents, page_name)
   136 
   171 
   137   def _editPost(self, request, entity, fields):
   172   def _editPost(self, request, entity, fields):
   138     """See base._editPost().
   173     """See base._editPost().
   139     """
   174     """
   140 
   175 
   331 
   366 
   332 
   367 
   333 view = View()
   368 view = View()
   334 
   369 
   335 admin = decorators.view(view.admin)
   370 admin = decorators.view(view.admin)
       
   371 assign_slots = decorators.view(view.assignSlots)
   336 create = decorators.view(view.create)
   372 create = decorators.view(view.create)
   337 delete = decorators.view(view.delete)
   373 delete = decorators.view(view.delete)
   338 edit = decorators.view(view.edit)
   374 edit = decorators.view(view.edit)
   339 list = decorators.view(view.list)
   375 list = decorators.view(view.list)
   340 public = decorators.view(view.public)
   376 public = decorators.view(view.public)