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 @@ @@ -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 \ No newline at end of file 26 \ No newline at end of file
users/views.py
@@ -10,6 +10,7 @@ from django.db.models import Q @@ -10,6 +10,7 @@ from django.db.models import Q
10 from braces import views as braces_mixins 10 from braces import views as braces_mixins
11 11
12 from .models import User 12 from .models import User
  13 +from .utils import has_dependencies
13 from .forms import RegisterUserForm, ProfileForm, UserForm, ChangePassForm, PassResetRequest, SetPasswordForm 14 from .forms import RegisterUserForm, ProfileForm, UserForm, ChangePassForm, PassResetRequest, SetPasswordForm
14 15
15 #RECOVER PASS IMPORTS 16 #RECOVER PASS IMPORTS
@@ -168,7 +169,7 @@ class DeleteView(braces_mixins.LoginRequiredMixin, generic.DeleteView): @@ -168,7 +169,7 @@ class DeleteView(braces_mixins.LoginRequiredMixin, generic.DeleteView):
168 success_msg = _('User removed successfully!') 169 success_msg = _('User removed successfully!')
169 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 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 messages.error(self.request, error_msg) 173 messages.error(self.request, error_msg)
173 174
174 return redirect(error_url) 175 return redirect(error_url)