Moved teacher max periods to settings
This commit is contained in:
parent
4833096018
commit
c569e9f3a5
3 changed files with 20 additions and 15 deletions
|
|
@ -2,6 +2,7 @@ import json
|
|||
from collections import OrderedDict
|
||||
from datetime import date, timedelta
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import models
|
||||
|
||||
from . import utils
|
||||
|
|
@ -65,9 +66,6 @@ class Teacher(models.Model):
|
|||
next_report = models.IntegerField(default=0, verbose_name='Report suivant')
|
||||
archived = models.BooleanField(default=False)
|
||||
|
||||
MAX_ENS_PERIODS = 1900
|
||||
MAX_FORMATION = 250
|
||||
|
||||
class Meta:
|
||||
verbose_name='Enseignant'
|
||||
ordering = ('last_name', 'first_name')
|
||||
|
|
@ -85,10 +83,12 @@ class Teacher(models.Model):
|
|||
tot_mandats = mandats.aggregate(models.Sum('period'))['period__sum'] or 0
|
||||
tot_ens = ens.aggregate(models.Sum('period'))['period__sum'] or 0
|
||||
# formation periods calculated at pro-rata of total charge
|
||||
tot_formation = int(round((tot_mandats + tot_ens) / self.MAX_ENS_PERIODS * self.MAX_FORMATION))
|
||||
tot_formation = int(round(
|
||||
(tot_mandats + tot_ens) / settings.MAX_ENS_PERIODS * settings.MAX_ENS_FORMATION
|
||||
))
|
||||
tot_trav = self.previous_report + tot_mandats + tot_ens + tot_formation
|
||||
tot_paye = tot_trav
|
||||
max_periods = self.MAX_ENS_PERIODS + self.MAX_FORMATION
|
||||
max_periods = settings.MAX_ENS_PERIODS + settings.MAX_ENS_FORMATION
|
||||
# Special situations triggering reporting (positive or negative) hours for next year:
|
||||
# - full-time teacher with a total charge under 100%
|
||||
# - teachers with a total charge over 100%
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import json
|
|||
import os
|
||||
from datetime import date
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import User
|
||||
from django.test import TestCase, override_settings
|
||||
from django.urls import reverse
|
||||
|
|
@ -224,31 +225,31 @@ class TeacherTests(TestCase):
|
|||
self.teacher.rate = 100.0
|
||||
self.teacher.save()
|
||||
crs = Course.objects.create(
|
||||
teacher=self.teacher, period=Teacher.MAX_ENS_PERIODS - 4, subject='Cours principal', imputation='ASSCFE',
|
||||
teacher=self.teacher, period=settings.MAX_ENS_PERIODS - 4, subject='Cours principal', imputation='ASSCFE',
|
||||
)
|
||||
effective = self.teacher.calc_activity()
|
||||
del effective['mandats']
|
||||
self.assertEqual(effective, {
|
||||
'tot_mandats': 8,
|
||||
'tot_ens': Teacher.MAX_ENS_PERIODS,
|
||||
'tot_formation': Teacher.MAX_FORMATION + 1,
|
||||
'tot_trav': Teacher.MAX_ENS_PERIODS + Teacher.MAX_FORMATION + 1 + 8,
|
||||
'tot_paye': Teacher.MAX_ENS_PERIODS + Teacher.MAX_FORMATION,
|
||||
'tot_ens': settings.MAX_ENS_PERIODS,
|
||||
'tot_formation': settings.MAX_ENS_FORMATION + 1,
|
||||
'tot_trav': settings.MAX_ENS_PERIODS + settings.MAX_ENS_FORMATION + 1 + 8,
|
||||
'tot_paye': settings.MAX_ENS_PERIODS + settings.MAX_ENS_FORMATION,
|
||||
'report': 8 + 1,
|
||||
})
|
||||
self.assertEqual(self.teacher.next_report, 8 + 1)
|
||||
|
||||
# Test below max hours per year for a full time
|
||||
crs.period = Teacher.MAX_ENS_PERIODS - 4 - 10
|
||||
crs.period = settings.MAX_ENS_PERIODS - 4 - 10
|
||||
crs.save()
|
||||
effective = self.teacher.calc_activity()
|
||||
del effective['mandats']
|
||||
self.assertEqual(effective, {
|
||||
'tot_mandats': 8,
|
||||
'tot_ens': Teacher.MAX_ENS_PERIODS - 10,
|
||||
'tot_formation': Teacher.MAX_FORMATION,
|
||||
'tot_trav': Teacher.MAX_ENS_PERIODS + Teacher.MAX_FORMATION + 8 - 10,
|
||||
'tot_paye': Teacher.MAX_ENS_PERIODS + Teacher.MAX_FORMATION,
|
||||
'tot_ens': settings.MAX_ENS_PERIODS - 10,
|
||||
'tot_formation': settings.MAX_ENS_FORMATION,
|
||||
'tot_trav': settings.MAX_ENS_PERIODS + settings.MAX_ENS_FORMATION + 8 - 10,
|
||||
'tot_paye': settings.MAX_ENS_PERIODS + settings.MAX_ENS_FORMATION,
|
||||
'report': -2,
|
||||
})
|
||||
self.assertEqual(self.teacher.next_report, -2)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue