mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-10-31 00:53:08 +00:00 
			
		
		
		
	Add ban for alcohol
This commit is contained in:
		
							
								
								
									
										19
									
								
								core/migrations/0005_user_is_banned_alcohol.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								core/migrations/0005_user_is_banned_alcohol.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
|  | from django.db import migrations, models | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  |  | ||||||
|  |     dependencies = [ | ||||||
|  |         ('core', '0004_user_godfathers'), | ||||||
|  |     ] | ||||||
|  |  | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AddField( | ||||||
|  |             model_name='user', | ||||||
|  |             name='is_banned_alcohol', | ||||||
|  |             field=models.BooleanField(help_text='Designates whether this user is denyed from buying alchool. ', verbose_name='banned from buying alcohol', default=False), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
| @@ -169,6 +169,13 @@ class User(AbstractBaseUser): | |||||||
|     parent_address = models.CharField(_("parent address"), max_length=128, blank=True, default="") |     parent_address = models.CharField(_("parent address"), max_length=128, blank=True, default="") | ||||||
|     is_subscriber_viewable = models.BooleanField(_("is subscriber viewable"), default=True) |     is_subscriber_viewable = models.BooleanField(_("is subscriber viewable"), default=True) | ||||||
|     godfathers = models.ManyToManyField('User', related_name='godchildren', blank=True) |     godfathers = models.ManyToManyField('User', related_name='godchildren', blank=True) | ||||||
|  |     is_banned_alcohol = models.BooleanField( | ||||||
|  |         _('banned from buying alcohol'), | ||||||
|  |         default=False, | ||||||
|  |         help_text=_( | ||||||
|  |             'Designates whether this user is denyed from buying alchool. ' | ||||||
|  |         ), | ||||||
|  |     ) | ||||||
|  |  | ||||||
|     objects = UserManager() |     objects = UserManager() | ||||||
|  |  | ||||||
|   | |||||||
| @@ -127,7 +127,7 @@ class UserProfileForm(forms.ModelForm): | |||||||
|         fields = ['first_name', 'last_name', 'nick_name', 'email', 'date_of_birth', 'profile_pict', 'avatar_pict', |         fields = ['first_name', 'last_name', 'nick_name', 'email', 'date_of_birth', 'profile_pict', 'avatar_pict', | ||||||
|                 'scrub_pict', 'sex', 'second_email', 'address', 'parent_address', 'phone', 'parent_phone', |                 'scrub_pict', 'sex', 'second_email', 'address', 'parent_address', 'phone', 'parent_phone', | ||||||
|                 'tshirt_size', 'role', 'department', 'dpt_option', 'semester', 'quote', 'school', 'promo', |                 'tshirt_size', 'role', 'department', 'dpt_option', 'semester', 'quote', 'school', 'promo', | ||||||
|                 'forum_signature', 'is_subscriber_viewable'] |                 'forum_signature', 'is_subscriber_viewable', 'is_banned_alcohol'] | ||||||
|         widgets = { |         widgets = { | ||||||
|                 'date_of_birth': SelectDate, |                 'date_of_birth': SelectDate, | ||||||
|                 'profile_pict': forms.ClearableFileInput, |                 'profile_pict': forms.ClearableFileInput, | ||||||
|   | |||||||
| @@ -319,22 +319,29 @@ class UserUpdateProfileView(UserTabsMixin, CanEditMixin, UpdateView): | |||||||
|     form_class = UserProfileForm |     form_class = UserProfileForm | ||||||
|     current_tab = "edit" |     current_tab = "edit" | ||||||
|     edit_once = ['profile_pict', 'date_of_birth', 'first_name', 'last_name'] |     edit_once = ['profile_pict', 'date_of_birth', 'first_name', 'last_name'] | ||||||
|  |     board_only = ['is_banned_alcohol'] | ||||||
|  |  | ||||||
|     def remove_once_edited_fields(self, request): |     def remove_restricted_fields(self, request): | ||||||
|  |         """ | ||||||
|  |         Removes edit_once and board_only fields | ||||||
|  |         """ | ||||||
|         for i in self.edit_once: |         for i in self.edit_once: | ||||||
|             if getattr(self.form.instance, i) and not (request.user.is_board_member or request.user.is_root): |             if getattr(self.form.instance, i) and not (request.user.is_board_member or request.user.is_root): | ||||||
|                 self.form.fields.pop(i, None) |                 self.form.fields.pop(i, None) | ||||||
|  |         for i in self.board_only: | ||||||
|  |             if not (request.user.is_board_member or request.user.is_root): | ||||||
|  |                 self.form.fields.pop(i, None) | ||||||
|  |  | ||||||
|     def get(self, request, *args, **kwargs): |     def get(self, request, *args, **kwargs): | ||||||
|         self.object = self.get_object() |         self.object = self.get_object() | ||||||
|         self.form = self.get_form() |         self.form = self.get_form() | ||||||
|         self.remove_once_edited_fields(request) |         self.remove_restricted_fields(request) | ||||||
|         return self.render_to_response(self.get_context_data(form=self.form)) |         return self.render_to_response(self.get_context_data(form=self.form)) | ||||||
|  |  | ||||||
|     def post(self, request, *args, **kwargs): |     def post(self, request, *args, **kwargs): | ||||||
|         self.object = self.get_object() |         self.object = self.get_object() | ||||||
|         self.form = self.get_form() |         self.form = self.get_form() | ||||||
|         self.remove_once_edited_fields(request) |         self.remove_restricted_fields(request) | ||||||
|         files = request.FILES.items() |         files = request.FILES.items() | ||||||
|         self.form.process(files) |         self.form.process(files) | ||||||
|         if request.user.is_authenticated() and request.user.can_edit(self.object) and self.form.is_valid(): |         if request.user.is_authenticated() and request.user.can_edit(self.object) and self.form.is_valid(): | ||||||
|   | |||||||
| @@ -278,6 +278,9 @@ class CounterClick(CounterTabsMixin, DetailView): | |||||||
|         if product.limit_age >= 18 and not self.customer.user.date_of_birth: |         if product.limit_age >= 18 and not self.customer.user.date_of_birth: | ||||||
|             request.session['no_age'] = True |             request.session['no_age'] = True | ||||||
|             return False |             return False | ||||||
|  |         if product.limit_age >= 18 and self.customer.user.is_banned_alcohol: | ||||||
|  |             request.session['not_allowed'] = True | ||||||
|  |             return False | ||||||
|         if self.customer.user.date_of_birth and self.customer.user.get_age() < product.limit_age: # Check if affordable |         if self.customer.user.date_of_birth and self.customer.user.get_age() < product.limit_age: # Check if affordable | ||||||
|             request.session['too_young'] = True |             request.session['too_young'] = True | ||||||
|             return False |             return False | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user