Merge branch 'Kerl/drop_py2_compat' into 'master'

Suppression des derniers vestiges de la compatibilité python 2

Closes #103

See merge request cof-geek/gestioCOF!278
This commit is contained in:
Ludovic Stephan 2018-04-16 15:21:00 +02:00
commit f85d51e3bd
43 changed files with 60 additions and 170 deletions

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from datetime import timedelta from datetime import timedelta
from custommail.shortcuts import send_mass_custom_mail from custommail.shortcuts import send_mass_custom_mail
@ -166,7 +164,7 @@ class AttributionAdminForm(forms.ModelForm):
) )
def clean(self): def clean(self):
cleaned_data = super(AttributionAdminForm, self).clean() cleaned_data = super().clean()
participant = cleaned_data.get("participant") participant = cleaned_data.get("participant")
spectacle = cleaned_data.get("spectacle") spectacle = cleaned_data.get("spectacle")
if participant and spectacle: if participant and spectacle:

View file

@ -1,9 +1,3 @@
# -*- coding: utf-8 -*-
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from django.db.models import Max from django.db.models import Max
import random import random

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from django import forms from django import forms
from django.forms.models import BaseInlineFormSet from django.forms.models import BaseInlineFormSet
from django.utils import timezone from django.utils import timezone
@ -80,7 +78,7 @@ class ResellForm(forms.Form):
required=False) required=False)
def __init__(self, participant, *args, **kwargs): def __init__(self, participant, *args, **kwargs):
super(ResellForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.fields['attributions'].queryset = ( self.fields['attributions'].queryset = (
participant.attribution_set participant.attribution_set
.filter(spectacle__date__gte=timezone.now()) .filter(spectacle__date__gte=timezone.now())
@ -99,7 +97,7 @@ class AnnulForm(forms.Form):
required=False) required=False)
def __init__(self, participant, *args, **kwargs): def __init__(self, participant, *args, **kwargs):
super(AnnulForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.fields['reventes'].queryset = ( self.fields['reventes'].queryset = (
participant.original_shows participant.original_shows
.filter(attribution__spectacle__date__gte=timezone.now(), .filter(attribution__spectacle__date__gte=timezone.now(),
@ -117,7 +115,7 @@ class InscriptionReventeForm(forms.Form):
required=False) required=False)
def __init__(self, tirage, *args, **kwargs): def __init__(self, tirage, *args, **kwargs):
super(InscriptionReventeForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.fields['spectacles'].queryset = ( self.fields['spectacles'].queryset = (
tirage.spectacle_set tirage.spectacle_set
.select_related('location') .select_related('location')
@ -172,7 +170,7 @@ class SoldForm(forms.Form):
widget=forms.CheckboxSelectMultiple) widget=forms.CheckboxSelectMultiple)
def __init__(self, participant, *args, **kwargs): def __init__(self, participant, *args, **kwargs):
super(SoldForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.fields['reventes'].queryset = ( self.fields['reventes'].queryset = (
participant.original_shows participant.original_shows
.filter(soldTo__isnull=False) .filter(soldTo__isnull=False)

View file

@ -1,11 +1,7 @@
# -*- coding: utf-8 -*-
""" """
Gestion en ligne de commande des reventes. Gestion en ligne de commande des reventes.
""" """
from __future__ import unicode_literals
from django.core.management import BaseCommand from django.core.management import BaseCommand
from django.utils import timezone from django.utils import timezone
from bda.models import SpectacleRevente from bda.models import SpectacleRevente

View file

@ -1,11 +1,7 @@
# -*- coding: utf-8 -*-
""" """
Gestion en ligne de commande des mails de rappel. Gestion en ligne de commande des mails de rappel.
""" """
from __future__ import unicode_literals
from datetime import timedelta from datetime import timedelta
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
from django.utils import timezone from django.utils import timezone

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
import calendar import calendar
import random import random
from datetime import timedelta from datetime import timedelta

View file

@ -1,9 +1,3 @@
# -*- coding: utf-8 -*-
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from django.conf.urls import url from django.conf.urls import url
from gestioncof.decorators import buro_required from gestioncof.decorators import buro_required
from bda.views import SpectacleListView from bda.views import SpectacleListView

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from collections import defaultdict from collections import defaultdict
import random import random
import hashlib import hashlib
@ -681,7 +679,7 @@ class SpectacleListView(ListView):
return categories return categories
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(SpectacleListView, self).get_context_data(**kwargs) context = super().get_context_data(**kwargs)
context['tirage_id'] = self.tirage.id context['tirage_id'] = self.tirage.id
context['tirage_name'] = self.tirage.title context['tirage_name'] = self.tirage.title
return context return context

View file

@ -1,9 +1,5 @@
# -*- encoding: utf-8 -*-
""" """
Formats français. Formats français.
""" """
from __future__ import unicode_literals
DATETIME_FORMAT = r'l j F Y \à H:i' DATETIME_FORMAT = r'l j F Y \à H:i'

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
""" """
Django common settings for cof project. Django common settings for cof project.

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
""" """
Fichier principal de configuration des urls du projet GestioCOF Fichier principal de configuration des urls du projet GestioCOF
""" """

View file

@ -181,7 +181,7 @@ class UserProfileAdmin(UserAdmin):
def get_fieldsets(self, request, user=None): def get_fieldsets(self, request, user=None):
if not request.user.is_superuser: if not request.user.is_superuser:
return self.staff_fieldsets return self.staff_fieldsets
return super(UserProfileAdmin, self).get_fieldsets(request, user) return super().get_fieldsets(request, user)
def save_model(self, request, user, form, change): def save_model(self, request, user, form, change):
cof_group, created = Group.objects.get_or_create(name='COF') cof_group, created = Group.objects.get_or_create(name='COF')
@ -267,7 +267,7 @@ class PetitCoursDemandeAdmin(admin.ModelAdmin):
class ClubAdminForm(forms.ModelForm): class ClubAdminForm(forms.ModelForm):
def clean(self): def clean(self):
cleaned_data = super(ClubAdminForm, self).clean() cleaned_data = super().clean()
respos = cleaned_data.get('respos') respos = cleaned_data.get('respos')
members = cleaned_data.get('membres') members = cleaned_data.get('membres')
for respo in respos.all(): for respo in respos.all():

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from ldap3 import Connection from ldap3 import Connection
from django import shortcuts from django import shortcuts

View file

@ -1,9 +1,3 @@
# -*- coding: utf-8 -*-
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import csv import csv
from django.http import HttpResponse, HttpResponseForbidden from django.http import HttpResponse, HttpResponseForbidden
from django.template.defaultfilters import slugify from django.template.defaultfilters import slugify

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from django.contrib.auth.decorators import user_passes_test from django.contrib.auth.decorators import user_passes_test

View file

@ -18,7 +18,7 @@ class EventForm(forms.Form):
event = kwargs.pop("event") event = kwargs.pop("event")
self.event = event self.event = event
current_choices = kwargs.pop("current_choices", None) current_choices = kwargs.pop("current_choices", None)
super(EventForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
choices = {} choices = {}
if current_choices: if current_choices:
for choice in current_choices.all(): for choice in current_choices.all():
@ -60,7 +60,7 @@ class SurveyForm(forms.Form):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
survey = kwargs.pop("survey") survey = kwargs.pop("survey")
current_answers = kwargs.pop("current_answers", None) current_answers = kwargs.pop("current_answers", None)
super(SurveyForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
answers = {} answers = {}
if current_answers: if current_answers:
for answer in current_answers.all(): for answer in current_answers.all():
@ -100,7 +100,7 @@ class SurveyForm(forms.Form):
class SurveyStatusFilterForm(forms.Form): class SurveyStatusFilterForm(forms.Form):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
survey = kwargs.pop("survey") survey = kwargs.pop("survey")
super(SurveyStatusFilterForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
for question in survey.questions.all(): for question in survey.questions.all():
for answer in question.answers.all(): for answer in question.answers.all():
name = "question_%d_answer_%d" % (question.id, answer.id) name = "question_%d_answer_%d" % (question.id, answer.id)
@ -129,7 +129,7 @@ class SurveyStatusFilterForm(forms.Form):
class EventStatusFilterForm(forms.Form): class EventStatusFilterForm(forms.Form):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
event = kwargs.pop("event") event = kwargs.pop("event")
super(EventStatusFilterForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
for option in event.options.all(): for option in event.options.all():
for choice in option.choices.all(): for choice in option.choices.all():
name = "option_%d_choice_%d" % (option.id, choice.id) name = "option_%d_choice_%d" % (option.id, choice.id)
@ -175,12 +175,12 @@ class UserProfileForm(forms.ModelForm):
last_name = forms.CharField(label=_('Nom'), max_length=30) last_name = forms.CharField(label=_('Nom'), max_length=30)
def __init__(self, *args, **kw): def __init__(self, *args, **kw):
super(UserProfileForm, self).__init__(*args, **kw) super().__init__(*args, **kw)
self.fields['first_name'].initial = self.instance.user.first_name self.fields['first_name'].initial = self.instance.user.first_name
self.fields['last_name'].initial = self.instance.user.last_name self.fields['last_name'].initial = self.instance.user.last_name
def save(self, *args, **kw): def save(self, *args, **kw):
super(UserProfileForm, self).save(*args, **kw) super().save(*args, **kw)
self.instance.user.first_name = self.cleaned_data.get('first_name') self.instance.user.first_name = self.cleaned_data.get('first_name')
self.instance.user.last_name = self.cleaned_data.get('last_name') self.instance.user.last_name = self.cleaned_data.get('last_name')
self.instance.user.save() self.instance.user.save()
@ -193,7 +193,7 @@ class UserProfileForm(forms.ModelForm):
class RegistrationUserForm(forms.ModelForm): class RegistrationUserForm(forms.ModelForm):
def __init__(self, *args, **kw): def __init__(self, *args, **kw):
super(RegistrationUserForm, self).__init__(*args, **kw) super().__init__(*args, **kw)
self.fields['username'].help_text = "" self.fields['username'].help_text = ""
class Meta: class Meta:
@ -219,8 +219,7 @@ class RegistrationPassUserForm(RegistrationUserForm):
return pass2 return pass2
def save(self, commit=True, *args, **kwargs): def save(self, commit=True, *args, **kwargs):
user = super(RegistrationPassUserForm, self).save(commit, *args, user = super().save(commit, *args, **kwargs)
**kwargs)
user.set_password(self.cleaned_data['password2']) user.set_password(self.cleaned_data['password2'])
if commit: if commit:
user.save() user.save()
@ -229,7 +228,7 @@ class RegistrationPassUserForm(RegistrationUserForm):
class RegistrationProfileForm(forms.ModelForm): class RegistrationProfileForm(forms.ModelForm):
def __init__(self, *args, **kw): def __init__(self, *args, **kw):
super(RegistrationProfileForm, self).__init__(*args, **kw) super().__init__(*args, **kw)
self.fields['mailing_cof'].initial = True self.fields['mailing_cof'].initial = True
self.fields['mailing_bda'].initial = True self.fields['mailing_bda'].initial = True
self.fields['mailing_bda_revente'].initial = True self.fields['mailing_bda_revente'].initial = True
@ -274,7 +273,7 @@ class AdminEventForm(forms.Form):
kwargs["initial"] = {"status": "wait"} kwargs["initial"] = {"status": "wait"}
else: else:
kwargs["initial"] = {"status": "no"} kwargs["initial"] = {"status": "no"}
super(AdminEventForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
choices = {} choices = {}
for choice in current_choices: for choice in current_choices:
if choice.event_option.id not in choices: if choice.event_option.id not in choices:
@ -337,14 +336,15 @@ class BaseEventRegistrationFormset(BaseFormSet):
self.events = kwargs.pop('events') self.events = kwargs.pop('events')
self.current_registrations = kwargs.pop('current_registrations', None) self.current_registrations = kwargs.pop('current_registrations', None)
self.extra = len(self.events) self.extra = len(self.events)
super(BaseEventRegistrationFormset, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
def _construct_form(self, index, **kwargs): def _construct_form(self, index, **kwargs):
kwargs['event'] = self.events[index] kwargs['event'] = self.events[index]
if self.current_registrations is not None: if self.current_registrations is not None:
kwargs['current_registration'] = self.current_registrations[index] kwargs['current_registration'] = self.current_registrations[index]
return super(BaseEventRegistrationFormset, self)._construct_form( return super()._construct_form(index, **kwargs)
index, **kwargs)
EventFormset = formset_factory(AdminEventForm, BaseEventRegistrationFormset) EventFormset = formset_factory(AdminEventForm, BaseEventRegistrationFormset)

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
""" """
Import des mails de GestioCOF dans la base de donnée Import des mails de GestioCOF dans la base de donnée
""" """

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from captcha.fields import ReCaptchaField from captcha.fields import ReCaptchaField
from django import forms from django import forms
@ -12,7 +10,7 @@ from gestioncof.petits_cours_models import PetitCoursDemande, PetitCoursAbility
class BaseMatieresFormSet(BaseInlineFormSet): class BaseMatieresFormSet(BaseInlineFormSet):
def clean(self): def clean(self):
super(BaseMatieresFormSet, self).clean() super().clean()
if any(self.errors): if any(self.errors):
# Don't bother validating the formset unless each form is # Don't bother validating the formset unless each form is
# valid on its own # valid on its own
@ -36,7 +34,7 @@ class DemandeForm(ModelForm):
captcha = ReCaptchaField(attrs={'theme': 'clean', 'lang': 'fr'}) captcha = ReCaptchaField(attrs={'theme': 'clean', 'lang': 'fr'})
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(DemandeForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.fields['matieres'].help_text = '' self.fields['matieres'].help_text = ''
class Meta: class Meta:

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from functools import reduce from functools import reduce
from django.db import models from django.db import models

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
import json import json
from custommail.shortcuts import render_custom_mail from custommail.shortcuts import render_custom_mail
@ -44,7 +42,7 @@ class DemandeDetailView(DetailView):
context_object_name = "demande" context_object_name = "demande"
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(DemandeDetailView, self).get_context_data(**kwargs) context = super().get_context_data(**kwargs)
obj = self.object obj = self.object
context['attributions'] = obj.petitcoursattribution_set.all() context['attributions'] = obj.petitcoursattribution_set.all()
return context return context

View file

@ -1,9 +1,3 @@
# -*- coding: utf-8 -*-
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from django import template from django import template
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
""" """
This file demonstrates writing tests using the unittest module. These will pass This file demonstrates writing tests using the unittest module. These will pass
when you run "manage.py test". when you run "manage.py test".
@ -6,10 +5,6 @@ when you run "manage.py test".
Replace this with more appropriate tests for your application. Replace this with more appropriate tests for your application.
""" """
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from django.test import TestCase from django.test import TestCase
from gestioncof.models import CofProfile, User from gestioncof.models import CofProfile, User

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from django.conf.urls import url from django.conf.urls import url
from gestioncof.petits_cours_views import DemandeListView, DemandeDetailView from gestioncof.petits_cours_views import DemandeListView, DemandeDetailView
from gestioncof import views, petits_cours_views from gestioncof import views, petits_cours_views

View file

@ -1,9 +1,3 @@
# -*- coding: utf-8 -*-
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from django.forms.widgets import Widget from django.forms.widgets import Widget
from django.forms.utils import flatatt from django.forms.utils import flatatt
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
@ -11,7 +5,7 @@ from django.utils.safestring import mark_safe
class TriStateCheckbox(Widget): class TriStateCheckbox(Widget):
def __init__(self, attrs=None, choices=()): def __init__(self, attrs=None, choices=()):
super(TriStateCheckbox, self).__init__(attrs) super().__init__(attrs)
# choices can be any iterable, but we may need to render this widget # choices can be any iterable, but we may need to render this widget
# multiple times. Thus, collapse it into a list so it can be consumed # multiple times. Thus, collapse it into a list so it can be consumed
# more than once. # more than once.

View file

@ -1,11 +1,6 @@
# -*- coding: utf-8 -*-
from __future__ import (absolute_import, division,
print_function, unicode_literals)
from builtins import *
from django.apps import AppConfig from django.apps import AppConfig
class KFetConfig(AppConfig): class KFetConfig(AppConfig):
name = 'kfet' name = 'kfet'
verbose_name = "Application K-Fêt" verbose_name = "Application K-Fêt"

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from kfet.models import Account, GenericTeamToken from kfet.models import Account, GenericTeamToken

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from .backends import AccountBackend from .backends import AccountBackend

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
from unittest import mock from unittest import mock
from django.core import signing from django.core import signing

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from ldap3 import Connection from ldap3 import Connection
from django.shortcuts import render from django.shortcuts import render
from django.http import Http404 from django.http import Http404

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.db import models from django.db import models

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from .utils import DjangoJsonWebsocketConsumer, PermConsumerMixin from .utils import DjangoJsonWebsocketConsumer, PermConsumerMixin

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from kfet.config import kfet_config from kfet.config import kfet_config

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from django.contrib.auth.decorators import user_passes_test from django.contrib.auth.decorators import user_passes_test

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from datetime import timedelta from datetime import timedelta
from decimal import Decimal from decimal import Decimal
@ -44,7 +42,7 @@ class AccountForm(forms.ModelForm):
# Surcharge pour passer data à Account.save() # Surcharge pour passer data à Account.save()
def save(self, data = {}, *args, **kwargs): def save(self, data = {}, *args, **kwargs):
obj = super(AccountForm, self).save(commit = False, *args, **kwargs) obj = super().save(commit = False, *args, **kwargs)
obj.save(data = data) obj.save(data = data)
return obj return obj
@ -93,7 +91,7 @@ class AccountPwdForm(forms.Form):
raise ValidationError("Mot de passe trop court") raise ValidationError("Mot de passe trop court")
if pwd1 != pwd2: if pwd1 != pwd2:
raise ValidationError("Les mots de passes sont différents") raise ValidationError("Les mots de passes sont différents")
super(AccountPwdForm, self).clean() super().clean()
class CofForm(forms.ModelForm): class CofForm(forms.ModelForm):
def clean_is_cof(self): def clean_is_cof(self):
@ -197,7 +195,7 @@ class CheckoutStatementCreateForm(forms.ModelForm):
or self.cleaned_data['balance_200'] is None or self.cleaned_data['balance_200'] is None
or self.cleaned_data['balance_500'] is None): or self.cleaned_data['balance_500'] is None):
raise ValidationError("Y'a un problème. Si tu comptes la caisse, mets au moins des 0 stp (et t'as pas idée de comment c'est long de vérifier que t'as mis des valeurs de partout...)") raise ValidationError("Y'a un problème. Si tu comptes la caisse, mets au moins des 0 stp (et t'as pas idée de comment c'est long de vérifier que t'as mis des valeurs de partout...)")
super(CheckoutStatementCreateForm, self).clean() super().clean()
class CheckoutStatementUpdateForm(forms.ModelForm): class CheckoutStatementUpdateForm(forms.ModelForm):
class Meta: class Meta:
@ -238,7 +236,7 @@ class ArticleForm(forms.ModelForm):
required = False) required = False)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(ArticleForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
if self.instance.pk: if self.instance.pk:
self.initial['suppliers'] = self.instance.suppliers.values_list('pk', flat=True) self.initial['suppliers'] = self.instance.suppliers.values_list('pk', flat=True)
@ -252,7 +250,7 @@ class ArticleForm(forms.ModelForm):
category, _ = ArticleCategory.objects.get_or_create(name=category_new) category, _ = ArticleCategory.objects.get_or_create(name=category_new)
self.cleaned_data['category'] = category self.cleaned_data['category'] = category
super(ArticleForm, self).clean() super().clean()
class Meta: class Meta:
model = Article model = Article
@ -323,7 +321,7 @@ class KPsulOperationForm(forms.ModelForm):
} }
def clean(self): def clean(self):
super(KPsulOperationForm, self).clean() super().clean()
type_ope = self.cleaned_data.get('type') type_ope = self.cleaned_data.get('type')
amount = self.cleaned_data.get('amount') amount = self.cleaned_data.get('amount')
article = self.cleaned_data.get('article') article = self.cleaned_data.get('article')
@ -366,7 +364,7 @@ class AddcostForm(forms.Form):
raise ValidationError('Compte invalide') raise ValidationError('Compte invalide')
else: else:
self.cleaned_data['amount'] = 0 self.cleaned_data['amount'] = 0
super(AddcostForm, self).clean() super().clean()
# ----- # -----
@ -464,7 +462,7 @@ class InventoryArticleForm(forms.Form):
stock_new = forms.IntegerField(required=False) stock_new = forms.IntegerField(required=False)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(InventoryArticleForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
if 'initial' in kwargs: if 'initial' in kwargs:
self.name = kwargs['initial']['name'] self.name = kwargs['initial']['name']
self.stock_old = kwargs['initial']['stock_old'] self.stock_old = kwargs['initial']['stock_old']
@ -486,7 +484,7 @@ class OrderArticleForm(forms.Form):
quantity_ordered = forms.IntegerField(required=False) quantity_ordered = forms.IntegerField(required=False)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(OrderArticleForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
if 'initial' in kwargs: if 'initial' in kwargs:
self.name = kwargs['initial']['name'] self.name = kwargs['initial']['name']
self.stock = kwargs['initial']['stock'] self.stock = kwargs['initial']['stock']
@ -516,7 +514,7 @@ class OrderArticleToInventoryForm(forms.Form):
quantity_received = forms.IntegerField() quantity_received = forms.IntegerField()
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(OrderArticleToInventoryForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
if 'initial' in kwargs: if 'initial' in kwargs:
self.name = kwargs['initial']['name'] self.name = kwargs['initial']['name']
self.category = kwargs['initial']['category'] self.category = kwargs['initial']['category']

View file

@ -1,4 +1,4 @@
# -*- coding: utf-8 -*- from functools import reduce
from django.db import models from django.db import models
from django.core.validators import RegexValidator from django.core.validators import RegexValidator
@ -7,7 +7,6 @@ from gestioncof.models import CofProfile
from django.urls import reverse from django.urls import reverse
from django.utils.six.moves import reduce from django.utils.six.moves import reduce
from django.utils import timezone from django.utils import timezone
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.db import transaction from django.db import transaction
from django.db.models import F from django.db.models import F
@ -256,7 +255,7 @@ class Account(models.Model):
cof.save() cof.save()
if data: if data:
self.cofprofile = cof self.cofprofile = cof
super(Account, self).save(*args, **kwargs) super().save(*args, **kwargs)
def change_pwd(self, clear_password): def change_pwd(self, clear_password):
from .auth.utils import hash_password from .auth.utils import hash_password
@ -397,7 +396,7 @@ class CheckoutTransfer(models.Model):
amount = models.DecimalField( amount = models.DecimalField(
max_digits = 6, decimal_places = 2) max_digits = 6, decimal_places = 2)
@python_2_unicode_compatible
class CheckoutStatement(models.Model): class CheckoutStatement(models.Model):
by = models.ForeignKey( by = models.ForeignKey(
Account, on_delete = models.PROTECT, Account, on_delete = models.PROTECT,
@ -449,7 +448,7 @@ class CheckoutStatement(models.Model):
self.balance_new + self.amount_taken - self.balance_old) self.balance_new + self.amount_taken - self.balance_old)
with transaction.atomic(): with transaction.atomic():
Checkout.objects.filter(pk=checkout_id).update(balance=self.balance_new) Checkout.objects.filter(pk=checkout_id).update(balance=self.balance_new)
super(CheckoutStatement, self).save(*args, **kwargs) super().save(*args, **kwargs)
else: else:
self.amount_error = ( self.amount_error = (
self.balance_new + self.amount_taken - self.balance_old) self.balance_new + self.amount_taken - self.balance_old)
@ -463,10 +462,9 @@ class CheckoutStatement(models.Model):
and last_statement.balance_new != self.balance_new): and last_statement.balance_new != self.balance_new):
Checkout.objects.filter(pk=self.checkout_id).update( Checkout.objects.filter(pk=self.checkout_id).update(
balance=F('balance') - last_statement.balance_new + self.balance_new) balance=F('balance') - last_statement.balance_new + self.balance_new)
super(CheckoutStatement, self).save(*args, **kwargs) super().save(*args, **kwargs)
@python_2_unicode_compatible
class ArticleCategory(models.Model): class ArticleCategory(models.Model):
name = models.CharField("nom", max_length=45) name = models.CharField("nom", max_length=45)
has_addcost = models.BooleanField("majorée", default=True, has_addcost = models.BooleanField("majorée", default=True,
@ -479,7 +477,6 @@ class ArticleCategory(models.Model):
return self.name return self.name
@python_2_unicode_compatible
class Article(models.Model): class Article(models.Model):
name = models.CharField("nom", max_length = 45) name = models.CharField("nom", max_length = 45)
is_sold = models.BooleanField("en vente", default = True) is_sold = models.BooleanField("en vente", default = True)
@ -566,7 +563,7 @@ class InventoryArticle(models.Model):
# d'erreur # d'erreur
if not self.inventory.order: if not self.inventory.order:
self.stock_error = self.stock_new - self.stock_old self.stock_error = self.stock_new - self.stock_old
super(InventoryArticle, self).save(*args, **kwargs) super().save(*args, **kwargs)
class Supplier(models.Model): class Supplier(models.Model):

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from channels.routing import include, route_class from channels.routing import include, route_class
from . import consumers from . import consumers

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from datetime import date, datetime, time, timedelta from datetime import date, datetime, time, timedelta
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
import re import re
from django import template from django import template

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from decimal import Decimal from decimal import Decimal
from django.test import TestCase from django.test import TestCase

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from unittest.mock import patch from unittest.mock import patch
from django.test import TestCase, Client from django.test import TestCase, Client

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from django.conf.urls import include, url from django.conf.urls import include, url
from django.contrib.auth.decorators import permission_required from django.contrib.auth.decorators import permission_required

View file

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
import ast import ast
from urllib.parse import urlencode from urllib.parse import urlencode
@ -495,7 +493,7 @@ class AccountNegativeList(ListView):
context_object_name = 'negatives' context_object_name = 'negatives'
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(AccountNegativeList, self).get_context_data(**kwargs) context = super().get_context_data(**kwargs)
real_balances = (neg.account.real_balance for neg in self.object_list) real_balances = (neg.account.real_balance for neg in self.object_list)
context['negatives_sum'] = sum(real_balances) context['negatives_sum'] = sum(real_balances)
return context return context
@ -530,7 +528,7 @@ class CheckoutCreate(SuccessMessageMixin, CreateView):
form.instance.created_by = self.request.user.profile.account_kfet form.instance.created_by = self.request.user.profile.account_kfet
form.save() form.save()
return super(CheckoutCreate, self).form_valid(form) return super().form_valid(form)
# Checkout - Read # Checkout - Read
@ -540,7 +538,7 @@ class CheckoutRead(DetailView):
context_object_name = 'checkout' context_object_name = 'checkout'
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(CheckoutRead, self).get_context_data(**kwargs) context = super().get_context_data(**kwargs)
context['statements'] = context['checkout'].statements.order_by('-at') context['statements'] = context['checkout'].statements.order_by('-at')
return context return context
@ -559,7 +557,7 @@ class CheckoutUpdate(SuccessMessageMixin, UpdateView):
form.add_error(None, 'Permission refusée') form.add_error(None, 'Permission refusée')
return self.form_invalid(form) return self.form_invalid(form)
# Updating # Updating
return super(CheckoutUpdate, self).form_valid(form) return super().form_valid(form)
# ----- # -----
# Checkout Statement views # Checkout Statement views
@ -611,7 +609,7 @@ class CheckoutStatementCreate(SuccessMessageMixin, CreateView):
at = self.object.at) at = self.object.at)
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(CheckoutStatementCreate, self).get_context_data(**kwargs) context = super().get_context_data(**kwargs)
checkout = Checkout.objects.get(pk=self.kwargs['pk_checkout']) checkout = Checkout.objects.get(pk=self.kwargs['pk_checkout'])
context['checkout'] = checkout context['checkout'] = checkout
return context return context
@ -627,7 +625,7 @@ class CheckoutStatementCreate(SuccessMessageMixin, CreateView):
form.instance.balance_new = getAmountBalance(form.cleaned_data) form.instance.balance_new = getAmountBalance(form.cleaned_data)
form.instance.checkout_id = self.kwargs['pk_checkout'] form.instance.checkout_id = self.kwargs['pk_checkout']
form.instance.by = self.request.user.profile.account_kfet form.instance.by = self.request.user.profile.account_kfet
return super(CheckoutStatementCreate, self).form_valid(form) return super().form_valid(form)
class CheckoutStatementUpdate(SuccessMessageMixin, UpdateView): class CheckoutStatementUpdate(SuccessMessageMixin, UpdateView):
model = CheckoutStatement model = CheckoutStatement
@ -639,7 +637,7 @@ class CheckoutStatementUpdate(SuccessMessageMixin, UpdateView):
return reverse_lazy('kfet.checkout.read', kwargs={'pk':self.kwargs['pk_checkout']}) return reverse_lazy('kfet.checkout.read', kwargs={'pk':self.kwargs['pk_checkout']})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(CheckoutStatementUpdate, self).get_context_data(**kwargs) context = super().get_context_data(**kwargs)
checkout = Checkout.objects.get(pk=self.kwargs['pk_checkout']) checkout = Checkout.objects.get(pk=self.kwargs['pk_checkout'])
context['checkout'] = checkout context['checkout'] = checkout
return context return context
@ -651,7 +649,7 @@ class CheckoutStatementUpdate(SuccessMessageMixin, UpdateView):
return self.form_invalid(form) return self.form_invalid(form)
# Updating # Updating
form.instance.amount_taken = getAmountTaken(form.instance) form.instance.amount_taken = getAmountTaken(form.instance)
return super(CheckoutStatementUpdate, self).form_valid(form) return super().form_valid(form)
# ----- # -----
# Category views # Category views
@ -683,7 +681,7 @@ class CategoryUpdate(SuccessMessageMixin, UpdateView):
return self.form_invalid(form) return self.form_invalid(form)
# Updating # Updating
return super(CategoryUpdate, self).form_valid(form) return super().form_valid(form)
# ----- # -----
# Article views # Article views
@ -758,7 +756,7 @@ class ArticleCreate(SuccessMessageMixin, CreateView):
) )
# Creating # Creating
return super(ArticleCreate, self).form_valid(form) return super().form_valid(form)
# Article - Read # Article - Read
@ -768,7 +766,7 @@ class ArticleRead(DetailView):
context_object_name = 'article' context_object_name = 'article'
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ArticleRead, self).get_context_data(**kwargs) context = super().get_context_data(**kwargs)
inventoryarts = (InventoryArticle.objects inventoryarts = (InventoryArticle.objects
.filter(article=self.object) .filter(article=self.object)
.select_related('inventory') .select_related('inventory')
@ -820,7 +818,7 @@ class ArticleUpdate(SuccessMessageMixin, UpdateView):
article=article, supplier=supplier) article=article, supplier=supplier)
# Updating # Updating
return super(ArticleUpdate, self).form_valid(form) return super().form_valid(form)
# ----- # -----
@ -1711,7 +1709,7 @@ class InventoryRead(DetailView):
context_object_name = 'inventory' context_object_name = 'inventory'
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(InventoryRead, self).get_context_data(**kwargs) context = super().get_context_data(**kwargs)
inventoryarticles = (InventoryArticle.objects inventoryarticles = (InventoryArticle.objects
.select_related('article', 'article__category') .select_related('article', 'article__category')
.filter(inventory = self.object) .filter(inventory = self.object)
@ -1729,7 +1727,7 @@ class OrderList(ListView):
context_object_name = 'orders' context_object_name = 'orders'
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(OrderList, self).get_context_data(**kwargs) context = super().get_context_data(**kwargs)
context['suppliers'] = Supplier.objects.order_by('name') context['suppliers'] = Supplier.objects.order_by('name')
return context return context
@ -1858,7 +1856,7 @@ class OrderRead(DetailView):
context_object_name = 'order' context_object_name = 'order'
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(OrderRead, self).get_context_data(**kwargs) context = super().get_context_data(**kwargs)
orderarticles = (OrderArticle.objects orderarticles = (OrderArticle.objects
.select_related('article', 'article__category') .select_related('article', 'article__category')
.filter(order=self.object) .filter(order=self.object)
@ -2012,7 +2010,7 @@ class SupplierUpdate(SuccessMessageMixin, UpdateView):
form.add_error(None, 'Permission refusée') form.add_error(None, 'Permission refusée')
return self.form_invalid(form) return self.form_invalid(form)
# Updating # Updating
return super(SupplierUpdate, self).form_valid(form) return super().form_valid(form)
# ========== # ==========
@ -2276,7 +2274,7 @@ class AccountStatBalance(PkUrlMixin, JSONDetailView):
@method_decorator(login_required) @method_decorator(login_required)
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
return super(AccountStatBalance, self).dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
# ------------------------ # ------------------------

View file

@ -9,14 +9,12 @@ django-redis-cache==1.7.1
icalendar icalendar
psycopg2 psycopg2
Pillow Pillow
six
unicodecsv unicodecsv
django-bootstrap-form==3.3 django-bootstrap-form==3.3
asgiref==1.1.1 asgiref==1.1.1
daphne==1.3.0 daphne==1.3.0
asgi-redis==1.3.0 asgi-redis==1.3.0
statistics==1.0.3.5 statistics==1.0.3.5
future==0.15.2
django-widget-tweaks==1.4.1 django-widget-tweaks==1.4.1
git+https://git.eleves.ens.fr/cof-geek/django_custommail.git#egg=django_custommail git+https://git.eleves.ens.fr/cof-geek/django_custommail.git#egg=django_custommail
ldap3 ldap3