app/soc/views/models/club.py
changeset 1006 6abf12b9e646
parent 1005 46b3e946a3e1
child 1007 3b66772d21a5
equal deleted inserted replaced
1005:46b3e946a3e1 1006:6abf12b9e646
    62     rights['create'] = [access.checkIsDeveloper]
    62     rights['create'] = [access.checkIsDeveloper]
    63     rights['edit'] = [access.checkIsClubAdminForClub]
    63     rights['edit'] = [access.checkIsClubAdminForClub]
    64     rights['delete'] = [access.checkIsDeveloper]
    64     rights['delete'] = [access.checkIsDeveloper]
    65     rights['home'] = [access.allow]
    65     rights['home'] = [access.allow]
    66     rights['list'] = [access.checkIsDeveloper]
    66     rights['list'] = [access.checkIsDeveloper]
       
    67     rights['apply_member'] = [access.checkAgreesToSiteToS]
    67     rights['list_requests'] = [access.checkIsClubAdminForClub]
    68     rights['list_requests'] = [access.checkIsClubAdminForClub]
    68     rights['list_roles'] = [access.checkIsClubAdminForClub]
    69     rights['list_roles'] = [access.checkIsClubAdminForClub]
    69     rights['applicant'] = [access.checkIsApplicationAccepted(club_app_logic)]
    70     rights['applicant'] = [access.checkIsApplicationAccepted(club_app_logic)]
    70 
    71 
    71     new_params = {}
    72     new_params = {}
    72     new_params['logic'] = soc.logic.models.club.logic
    73     new_params['logic'] = soc.logic.models.club.logic
    73     new_params['rights'] = rights
    74     new_params['rights'] = rights
    74     new_params['name'] = "Club"
    75     new_params['name'] = "Club"
       
    76     new_params['url_name'] = "club"
    75 
    77 
    76     patterns = []
    78     patterns = []
    77 
    79 
    78     patterns += [(r'^%(url_name)s/(?P<access_type>applicant)/%(key_fields)s$',
    80     patterns += [(r'^%(url_name)s/(?P<access_type>applicant)/%(key_fields)s$',
    79         'soc.views.models.%(module_name)s.applicant', 
    81         'soc.views.models.%(module_name)s.applicant', 
    80         "%(name)s Creation via Accepted Application"),]
    82         "%(name)s Creation via Accepted Application"),
       
    83         (r'^%(url_name)s/(?P<access_type>apply_member)$',
       
    84         'soc.views.models.%(module_name)s.apply_member', 
       
    85         "List of all %(name_plural)s you can apply to"),]
    81 
    86 
    82     new_params['extra_django_patterns'] = patterns
    87     new_params['extra_django_patterns'] = patterns
       
    88 
       
    89     new_params['sidebar_additional'] = [
       
    90         ('/' + new_params['url_name'] + '/apply_member', 'Join a Club', 'list_apply'),]
    83 
    91 
    84     new_params['extra_dynaexclude'] = ['founder', 'home']
    92     new_params['extra_dynaexclude'] = ['founder', 'home']
    85     new_params['edit_extra_dynafields'] = {
    93     new_params['edit_extra_dynafields'] = {
    86         'founded_by': forms.CharField(widget=widgets.ReadOnlyInput(),
    94         'founded_by': forms.CharField(widget=widgets.ReadOnlyInput(),
    87                                    required=False),
    95                                    required=False),
   186     # create the club entity
   194     # create the club entity
   187     entity = self._logic.updateOrCreateFromKeyName(fields, key_name)
   195     entity = self._logic.updateOrCreateFromKeyName(fields, key_name)
   188 
   196 
   189     # redirect to notifications list to see the admin invite
   197     # redirect to notifications list to see the admin invite
   190     return http.HttpResponseRedirect('/notification/list')
   198     return http.HttpResponseRedirect('/notification/list')
       
   199 
       
   200 
       
   201   @decorators.merge_params
       
   202   @decorators.check_access
       
   203   def applyMember(self, request, access_type,
       
   204                 page_name=None, params=None, **kwargs):
       
   205     """Shows a list of all clubs and you can choose one to apply to become a member.
       
   206 
       
   207     Args:
       
   208       request: the standard Django HTTP request object
       
   209       access_type : the name of the access type which should be checked
       
   210       page_name: the page name displayed in templates as page and header title
       
   211       params: a dict with params for this View
       
   212       kwargs: the Key Fields for the specified entity
       
   213     """
       
   214 
       
   215     list_params = params.copy()
       
   216     list_params['list_action'] = (redirects.getRequestRedirectForRole, 'club_member')
       
   217     list_params['list_description'] = 'Choose a club to apply to become a Club Member'
       
   218 
       
   219     return self.list(request, access_type, 
       
   220         page_name, params=list_params, filter=None)
   191 
   221 
   192 
   222 
   193   def _editGet(self, request, entity, form):
   223   def _editGet(self, request, entity, form):
   194     """See base.View._editGet().
   224     """See base.View._editGet().
   195     """
   225     """
   254 
   284 
   255 
   285 
   256 view = View()
   286 view = View()
   257 
   287 
   258 applicant = view.applicant
   288 applicant = view.applicant
       
   289 apply_member = view.applyMember
   259 create = view.create
   290 create = view.create
   260 delete = view.delete
   291 delete = view.delete
   261 edit = view.edit
   292 edit = view.edit
   262 home = view.home
   293 home = view.home
   263 list = view.list
   294 list = view.list