def edit_applicant_role_types(user): if user.is_anonymous: return [] if is_admin(user): return [ 'admin', 'fum', 'board', 'presidium', 'group_leader', 'engaged' ] elif is_fum(user): return ['board', 'presidium'] elif is_board(user): return ['presidium'] elif is_presidium(user): return ['group_leader', 'engaged'] elif is_group_leader(user): return ['engaged'] return []
def get_form(self, form_class=None): form = super(ApplicationEditView, self).get_form(form_class=form_class) if not is_super(self.request.user) \ and not is_admin(self.request.user): # Filter status form.fields['status'].choices = form.fields['status'].choices[1:] accepted_choices = ['submitted', 'approved', 'disapproved'] filtered_choices = [] for choice in form.fields['status'].choices: if choice[0] in accepted_choices: filtered_choices.append(choice) form.fields['status'].choices = filtered_choices # Filter position position_qs = form.fields['position'].queryset roles = Role.edit_role_types_of(self.request.user) position_qs = position_qs.filter(role__in=roles) form.fields['position'].queryset = position_qs return form