app/soc/views/models/club_app.py
changeset 1083 b8018d7a9f23
parent 1081 81cf69225a24
child 1085 0afbdd0905ef
equal deleted inserted replaced
1082:946adb594793 1083:b8018d7a9f23
    80         'backup_admin_link_id': forms.CharField(
    80         'backup_admin_link_id': forms.CharField(
    81               label=soc.models.club_app.ClubApplication.backup_admin.verbose_name
    81               label=soc.models.club_app.ClubApplication.backup_admin.verbose_name
    82               ),
    82               ),
    83         'clean_backup_admin_link_id': 
    83         'clean_backup_admin_link_id': 
    84             cleaning.clean_users_not_same('backup_admin_link_id'),
    84             cleaning.clean_users_not_same('backup_admin_link_id'),
    85         'clean_link_id' : self.clean_club_app_link_id('link_id')
    85         'clean_link_id': cleaning.clean_new_club_link_id('link_id', 
       
    86             model_logic.club, club_app_logic)
    86         }
    87         }
    87 
    88 
    88     new_params['edit_extra_dynafields'] = {
    89     new_params['edit_extra_dynafields'] = {
    89         'clean_link_id' : cleaning.clean_link_id('link_id'),
    90         'clean_link_id' : cleaning.clean_link_id('link_id'),
    90         }
    91         }
   340     # fill contents with all the needed lists
   341     # fill contents with all the needed lists
   341     contents = [ur_list, uh_list, den_list, ign_list]
   342     contents = [ur_list, uh_list, den_list, ign_list]
   342 
   343 
   343     # call the _list method from base to display the list
   344     # call the _list method from base to display the list
   344     return self._list(request, params, contents, page_name)
   345     return self._list(request, params, contents, page_name)
   345 
       
   346   def clean_club_app_link_id(self, field_name):
       
   347     """Cleans the link_id in the club application form
       
   348     """
       
   349     def wrapper(self):
       
   350       # validate the link_id
       
   351       club_link_id = cleaning.clean_link_id(field_name)(self)
       
   352 
       
   353       # check if there is already an application with the given link_id
       
   354       fields = {'link_id': club_link_id,
       
   355                 'state': ['accepted','ignored','needs review','completed']}
       
   356       club_app_entity = club_app_logic.logic.getForFields(fields, unique=True)
       
   357 
       
   358       if club_app_entity:
       
   359         raise forms.ValidationError(
       
   360             ugettext('This link ID is already in use, please specify another one'))
       
   361 
       
   362       # check if there is already a club with the given link_id
       
   363       fields['state'] = ['new', 'active', 'inactive']
       
   364       club_logic = model_logic.club
       
   365       club_entity = club_logic.logic.getForFields(fields, unique=True)
       
   366 
       
   367       if club_entity:
       
   368         raise forms.ValidationError(
       
   369             ugettext('This link ID is already in use, please specify another one'))
       
   370 
       
   371       return club_link_id
       
   372     return wrapper
       
   373 
   346 
   374 
   347 
   375 view = View()
   348 view = View()
   376 
   349 
   377 create = view.create
   350 create = view.create