Add LogBook model

This commit is contained in:
Claude Paroz 2018-02-19 10:08:46 +01:00
parent 5891cc2c43
commit b50dd1a619
3 changed files with 77 additions and 0 deletions

View file

@ -11,6 +11,7 @@ from django.http import HttpResponse
from .models import (
Teacher, Option, Student, Section, Level, Klass, Corporation,
CorpContact, Domain, Period, Availability, Training, Course,
LogBookReason, LogBook,
)
from .pdf import ChargeSheetPDF
@ -261,3 +262,5 @@ admin.site.register(Domain)
admin.site.register(Period, PeriodAdmin)
admin.site.register(Availability, AvailabilityAdmin)
admin.site.register(Training, TrainingAdmin)
admin.site.register(LogBookReason)
admin.site.register(LogBook)

View file

@ -0,0 +1,47 @@
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('stages', '0007_add_student_expert'),
]
operations = [
migrations.CreateModel(
name='LogBook',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('input_date', models.DateField(auto_now_add=True, verbose_name='Date de saisie')),
('start_date', models.DateField(verbose_name='Date de début')),
('end_date', models.DateField(verbose_name='Date de fin')),
('nb_period', models.IntegerField(verbose_name='Périodes')),
('comment', models.CharField(blank=True, max_length=200, verbose_name='Commentaire motif')),
],
options={
'verbose_name': 'Carnet du lait',
'verbose_name_plural': 'Carnets du lait',
},
),
migrations.CreateModel(
name='LogBookReason',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=50, unique=True, verbose_name='Motif')),
],
options={
'verbose_name': 'Motif de carnet du lait',
},
),
migrations.AddField(
model_name='logbook',
name='reason',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='stages.LogBookReason', verbose_name='Catégorie de motif'),
),
migrations.AddField(
model_name='logbook',
name='teacher',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='stages.Teacher', verbose_name='Enseignant'),
),
]

View file

@ -144,6 +144,33 @@ class Teacher(models.Model):
return (self.calc_activity(), imputations)
class LogBookReason(models.Model):
name = models.CharField('Motif', max_length=50, unique=True)
def __str__(self):
return self.name
class Meta:
verbose_name = 'Motif de carnet du lait'
class LogBook(models.Model):
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE, verbose_name='Enseignant')
reason = models.ForeignKey(LogBookReason, on_delete=models.PROTECT, verbose_name='Catégorie de motif')
input_date = models.DateField('Date de saisie', auto_now_add=True)
start_date = models.DateField('Date de début')
end_date = models.DateField('Date de fin')
nb_period = models.IntegerField('Périodes')
comment = models.CharField('Commentaire motif', max_length=200, blank=True)
def __str__(self):
return '{} : {} pér. - {}'.format(self.teacher, self.nb_period, self.comment)
class Meta:
verbose_name = 'Carnet du lait'
verbose_name_plural = 'Carnets du lait'
class Option(models.Model):
name = models.CharField("Nom", max_length=100, unique=True)