Commit 95c79c3fd35d17f2fa249cd19ce1823b3063ca08

Authored by Zambom
1 parent ed2cd2be

Updating dependencies check in account deletion

Showing 2 changed files with 27 additions and 1 deletions   Show diff stats
users/utils.py 0 → 100644
... ... @@ -0,0 +1,25 @@
  1 +# File used to store useful user functions #
  2 +
  3 +from categories.models import Category
  4 +from subjects.models import Subject
  5 +
  6 +def has_dependencies(user):
  7 + if user.is_staff: #Check admin function
  8 + return True
  9 +
  10 + cats = Category.objects.filter(coordinators = user)
  11 +
  12 + if len(cats) > 0: #Check coordinator function
  13 + return True
  14 +
  15 + subs = Subject.objects.filter(professor = user)
  16 +
  17 + if len(subs) > 0: #Check professor function
  18 + return True
  19 +
  20 + subs = Subject.objects.filter(students = user)
  21 +
  22 + if len(subs) > 0: #Check student function
  23 + return True
  24 +
  25 + return False
0 26 \ No newline at end of file
... ...
users/views.py
... ... @@ -10,6 +10,7 @@ from django.db.models import Q
10 10 from braces import views as braces_mixins
11 11  
12 12 from .models import User
  13 +from .utils import has_dependencies
13 14 from .forms import RegisterUserForm, ProfileForm, UserForm, ChangePassForm, PassResetRequest, SetPasswordForm
14 15  
15 16 #RECOVER PASS IMPORTS
... ... @@ -168,7 +169,7 @@ class DeleteView(braces_mixins.LoginRequiredMixin, generic.DeleteView):
168 169 success_msg = _('User removed successfully!')
169 170 error_msg = _('Could not remove the account. The user is attach to one or more functions (administrator, coordinator, professor ou student) in the system.')
170 171  
171   - if user.has_dependencies():
  172 + if has_dependencies(user):
172 173 messages.error(self.request, error_msg)
173 174  
174 175 return redirect(error_url)
... ...