diff --git a/stages/admin.py b/stages/admin.py index 5bd870e..bd0bdcc 100644 --- a/stages/admin.py +++ b/stages/admin.py @@ -4,7 +4,7 @@ from django.db import models from stages.models import ( Teacher, Student, Section, Level, Klass, Referent, Corporation, - CorpContact, Domain, Period, Availability, Training, + CorpContact, Domain, Period, Availability, Training, Course, ) @@ -186,6 +186,7 @@ admin.site.register(Klass, KlassAdmin) admin.site.register(Student, StudentAdmin) admin.site.register(Referent, ReferentAdmin) admin.site.register(Teacher, TeacherAdmin) +admin.site.register(Course) admin.site.register(Corporation, CorporationAdmin) admin.site.register(CorpContact, CorpContactAdmin) admin.site.register(Domain) diff --git a/stages/migrations/0013_course.py b/stages/migrations/0013_course.py new file mode 100644 index 0000000..7ccdf3b --- /dev/null +++ b/stages/migrations/0013_course.py @@ -0,0 +1,27 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stages', '0012_added_student_fields'), + ] + + operations = [ + migrations.CreateModel( + name='Course', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('klass', models.CharField(default='', max_length=40, verbose_name='Classe(s)')), + ('subject', models.CharField(default='', max_length=100, verbose_name='Sujet')), + ('section', models.CharField(default='', max_length=10, verbose_name='Section')), + ('period', models.IntegerField(default=0, verbose_name='Nb de périodes')), + ('imputation', models.CharField(choices=[('ASAFE', 'ASAFE'), ('ASEFE', 'ASEFE'), ('ASSCFE', 'ASSCFE'), ('EDEpe', 'EDEpe'), ('EDEps', 'EDEps'), ('EDE', 'EDE'), ('EDS', 'EDS'), ('CAS-FPP', 'CAS-FPP')], max_length=10, verbose_name='Imputation')), + ('teacher', models.ForeignKey(blank=True, null=True, on_delete=models.deletion.SET_NULL, to='stages.Teacher', verbose_name="Enseignant-e")), + ], + options={ + 'verbose_name': 'Cours', + 'verbose_name_plural': 'Cours', + }, + ), + ] diff --git a/stages/models.py b/stages/models.py index c893cdc..5a489df 100644 --- a/stages/models.py +++ b/stages/models.py @@ -337,3 +337,35 @@ class Training(models.Model): 'comment_avail': self.availability.comment, 'domain': str(self.availability.domain), } + + +IMPUTATION_CHOICES = ( + ('ASAFE', 'ASAFE'), + ('ASEFE', 'ASEFE'), + ('ASSCFE','ASSCFE'), + ('EDEpe', 'EDEpe'), + ('EDEps', 'EDEps'), + ('EDE', 'EDE'), + ('EDS', 'EDS'), + ('CAS-FPP', 'CAS-FPP'), +) + +class Course(models.Model): + """Cours et mandats attribués aux enseignants""" + teacher = models.ForeignKey(Teacher, blank=True, null=True, + verbose_name="Enseignant-e", on_delete=models.SET_NULL) + klass = models.CharField("Classe(s)", max_length=40, default='') + subject = models.CharField("Sujet", max_length=100, default='') + section = models.CharField("Section", max_length=10, default='') + period = models.IntegerField("Nb de périodes", default=0) + # Imputation comptable: compte dans lequel les frais du cours seront imputés + imputation = models.CharField("Imputation", max_length=10, choices=IMPUTATION_CHOICES) + + class Meta: + verbose_name = 'Cours' + verbose_name_plural = 'Cours' + + def __str__(self): + return '{0} - {1} - {2} - {3} - {4}'.format( + self.teacher, self.klass, self.subject, self.period, self.section + )