diff --git a/profiles/admin.py b/profiles/admin.py index 6aefa1a15a823939b603430a933abd9852706f31..f2094804f1fd73115fc5cc3f3823c138b8205078 100644 --- a/profiles/admin.py +++ b/profiles/admin.py @@ -7,6 +7,8 @@ import codecs import csv from django.http import HttpResponse + + class ExportCsvMixin: def export_as_csv(self, request, queryset): @@ -14,13 +16,15 @@ class ExportCsvMixin: field_names = [field.name for field in meta.fields] response = HttpResponse(content_type='text/csv') - response['Content-Disposition'] = 'attachment; filename={}.csv'.format(meta) - response.write(codecs.BOM_UTF8) #force response to be UTF-8 + response['Content-Disposition'] = 'attachment; filename={}.csv'.format( + meta) + response.write(codecs.BOM_UTF8) # force response to be UTF-8 writer = csv.writer(response, delimiter=';') writer.writerow(field_names) for obj in queryset: - row = writer.writerow([getattr(obj, field) for field in field_names]) + row = writer.writerow([getattr(obj, field) + for field in field_names]) return response @@ -33,8 +37,9 @@ class ProfileAdminMixin: search_fields = ('user__email', 'user__first_name', 'user__last_name',) actions = ["export_as_csv"] + @admin.register(Tutor) -class TutorAdmin(ProfileAdminMixin, admin.ModelAdmin,ExportCsvMixin): +class TutorAdmin(ProfileAdminMixin, admin.ModelAdmin, ExportCsvMixin): """Tutor admin panel.""" autocomplete_fields = ('address',) @@ -45,10 +50,12 @@ class TutorAdmin(ProfileAdminMixin, admin.ModelAdmin,ExportCsvMixin): @admin.register(Student) -class StudentAdmin(ProfileAdminMixin, admin.ModelAdmin,ExportCsvMixin): +class StudentAdmin(ProfileAdminMixin, admin.ModelAdmin, ExportCsvMixin): """Student admin panel.""" - list_filter = (('school',MultiSelectFieldListFilter), 'year', 'registration__validated') + list_filter = (('school', MultiSelectFieldListFilter), + 'year', 'registration__validated') + class Meta: # noqa model = Student ordering = ['updated_date'] - actions = ["export_as_csv"] \ No newline at end of file + actions = ["export_as_csv"] diff --git a/profiles/models.py b/profiles/models.py index 4c9d912bbe6d1fb16a44290e0d73de85c898c5d1..669195e9ea56dd1ef3519d5981a048a0c8871ee3 100644 --- a/profiles/models.py +++ b/profiles/models.py @@ -57,35 +57,34 @@ class Student(ProfileMixin, models.Model): ) classType = models.CharField(max_length=50, - null=True, - blank=True, - verbose_name="général/techno", - ) + null=True, + blank=True, + verbose_name="général/techno", + ) nationality = models.CharField(max_length=50, - null=True, - blank=True, - verbose_name="nationalité", - ) + null=True, + blank=True, + verbose_name="nationalité", + ) specialTeaching = models.CharField(max_length=50, - null=True, - blank=True, - verbose_name="enseignement de spécialité", - ) + null=True, + blank=True, + verbose_name="enseignement de spécialité", + ) zipCode = models.CharField(max_length=10, - null=True, - blank=True, - verbose_name="code postal", - ) - + null=True, + blank=True, + verbose_name="code postal", + ) gender = models.CharField(max_length=20, - null=True, - blank=True, - verbose_name="genre", - ) + null=True, + blank=True, + verbose_name="genre", + ) addressNumber = models.IntegerField( null=True, @@ -94,77 +93,70 @@ class Student(ProfileMixin, models.Model): ) street = models.CharField(max_length=70, - null=True, - blank=True, - verbose_name="nom de rue" - ) + null=True, + blank=True, + verbose_name="nom de rue" + ) city = models.CharField(max_length=50, - null=True, - blank=True, - verbose_name="nom de ville" - ) + null=True, + blank=True, + verbose_name="nom de ville" + ) personalPhone = models.CharField(max_length=12, - null=True, - blank=True, - verbose_name="numéro de téléphone personnel" - ) + null=True, + blank=True, + verbose_name="numéro de téléphone personnel" + ) parentsPhone = models.CharField(max_length=12, - null=True, - blank=True, - verbose_name="numéro de téléphone parental" - ) + null=True, + blank=True, + verbose_name="numéro de téléphone parental" + ) parentsEmail = models.EmailField(max_length=70, - null=True, - blank=True, - verbose_name="adresse mail parentale" - ) - + null=True, + blank=True, + verbose_name="adresse mail parentale" + ) school = models.CharField(max_length=70, - null=True, - blank=True, - verbose_name="établissement" - ) - + null=True, + blank=True, + verbose_name="établissement" + ) grade = models.CharField(max_length=20, - null=True, - blank=True, - verbose_name="niveau de la classe" - ) - + null=True, + blank=True, + verbose_name="niveau de la classe" + ) scholarship = models.CharField(max_length=50, - null=True, - blank=True, - verbose_name="boursier" - ) - + null=True, + blank=True, + verbose_name="boursier" + ) fatherActivity = models.CharField(max_length=70, - null=True, - blank=True, - verbose_name="métier du père" - ) - + null=True, + blank=True, + verbose_name="métier du père" + ) motherActivity = models.CharField(max_length=70, - null=True, - blank=True, - verbose_name="métier de la mère" - ) - + null=True, + blank=True, + verbose_name="métier de la mère" + ) parentsStatus = models.CharField(max_length=70, - null=True, - blank=True, - verbose_name="statut des parents" - ) - + null=True, + blank=True, + verbose_name="statut des parents" + ) dependantsNumber = models.IntegerField( null=True, @@ -173,10 +165,10 @@ class Student(ProfileMixin, models.Model): ) year = models.CharField(max_length=10, - null=True, - blank=True, - verbose_name="année" - ) + null=True, + blank=True, + verbose_name="année" + ) @staticmethod def has_write_permission(request): @@ -187,16 +179,17 @@ class Student(ProfileMixin, models.Model): def save(self, *args, **kwargs): """Updates the year field based on the last modified date""" - if self.city != None: # Ne mettre à jour que quand les données personnelles sont remplies + if self.city != None: # Ne mettre à jour que quand les données personnelles sont remplies date_now = datetime.now() - if date_now.month>=9: + if date_now.month >= 9: self.year = f"{date_now.year}/{date_now.year+1}" else: self.year = f"{date_now.year-1}/{date_now.year}" - SendDocs(user=self.user).send() # send email with link to registration docs + # send email with link to registration docs + SendDocs(user=self.user).send() - return super(Student,self).save(*args, **kwargs) + return super(Student, self).save(*args, **kwargs) class Meta: # noqa verbose_name = 'lycéen' diff --git a/visits/admin.py b/visits/admin.py index f37a9af283aabb7feea90d105046d7c2f99aac5b..946121346ecaa877176885aa5abe7519d9d7f53c 100644 --- a/visits/admin.py +++ b/visits/admin.py @@ -202,12 +202,6 @@ class ParticipationAdmin(admin.ModelAdmin): export_as_csv.short_description = "Exporter sélection (en .csv)" -<< << << < HEAD -== == == = - ->>>>>> > f3728719809bca5d0418070e56327751d8f7a3aa - - @ admin.register(Visit.organizers.through) class VisitOrganizersAdmin(admin.ModelAdmin): """Admin panel for visit organizers."""