Added Teacher model

This commit is contained in:
Claude Paroz 2017-07-11 23:01:46 +02:00
parent e0a416a966
commit df8f520b86
3 changed files with 74 additions and 2 deletions

View file

@ -2,8 +2,10 @@ from django import forms
from django.contrib import admin
from django.db import models
from stages.models import (Student, Section, Level, Klass, Referent, Corporation,
CorpContact, Domain, Period, Availability, Training)
from stages.models import (
Teacher, Student, Section, Level, Klass, Referent, Corporation,
CorpContact, Domain, Period, Availability, Training,
)
class ArchivedListFilter(admin.BooleanFieldListFilter):
@ -30,6 +32,10 @@ class KlassAdmin(admin.ModelAdmin):
ordering = ('name',)
class TeacherAdmin(admin.ModelAdmin):
list_display = ('__str__', 'abrev', 'email')
class StudentAdmin(admin.ModelAdmin):
list_display = ('__str__', 'pcode', 'city', 'klass', 'archived')
ordering = ('last_name', 'first_name')
@ -176,6 +182,7 @@ admin.site.register(Level)
admin.site.register(Klass, KlassAdmin)
admin.site.register(Student, StudentAdmin)
admin.site.register(Referent, ReferentAdmin)
admin.site.register(Teacher, TeacherAdmin)
admin.site.register(Corporation, CorporationAdmin)
admin.site.register(CorpContact, CorpContactAdmin)
admin.site.register(Domain)

View file

@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.2 on 2017-07-11 23:05
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('stages', '0010_nullable_student_klass'),
]
operations = [
migrations.CreateModel(
name='Teacher',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('civility', models.CharField(max_length=10, verbose_name='Civilité')),
('first_name', models.CharField(max_length=40, verbose_name='Prénom')),
('last_name', models.CharField(max_length=40, verbose_name='Nom')),
('abrev', models.CharField(max_length=10, verbose_name='Sigle')),
('birth_date', models.DateField(blank=True, verbose_name='Date de naissance')),
('email', models.EmailField(blank=True, max_length=254, verbose_name='Courriel')),
('contract', models.CharField(max_length=20, verbose_name='Contrat')),
('rate', models.DecimalField(decimal_places=1, default=0.0, max_digits=4, verbose_name="Taux d'activité")),
('ext_id', models.IntegerField(blank=True, null=True)),
('previous_report', models.IntegerField(default=0, verbose_name='Report précédent')),
('next_report', models.IntegerField(default=0, verbose_name='Report suivant')),
],
options={
'verbose_name': 'Enseignant',
'ordering': ('last_name', 'first_name'),
},
),
migrations.AddField(
model_name='klass',
name='teacher',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.Teacher', verbose_name='Maître de classe'),
),
]

View file

@ -48,6 +48,8 @@ class Klass(models.Model):
name = models.CharField(max_length=10, verbose_name='Nom')
section = models.ForeignKey(Section, verbose_name='Filière', on_delete=models.PROTECT)
level = models.ForeignKey(Level, verbose_name='Niveau', on_delete=models.PROTECT)
teacher = models.ForeignKey('Teacher', blank=True, null=True,
on_delete=models.SET_NULL, verbose_name='Maître de classe')
class Meta:
verbose_name = "Classe"
@ -56,6 +58,27 @@ class Klass(models.Model):
return self.name
class Teacher(models.Model):
civility = models.CharField(max_length=10, verbose_name='Civilité')
first_name = models.CharField(max_length=40, verbose_name='Prénom')
last_name = models.CharField(max_length=40, verbose_name='Nom')
abrev = models.CharField(max_length=10, verbose_name='Sigle')
birth_date = models.DateField(verbose_name='Date de naissance', blank=True)
email = models.EmailField(verbose_name='Courriel', blank=True)
contract = models.CharField(max_length=20, verbose_name='Contrat')
rate = models.DecimalField(default=0.0, max_digits=4, decimal_places=1, verbose_name="Taux d'activité")
ext_id = models.IntegerField(blank=True, null=True)
previous_report = models.IntegerField(default=0, verbose_name='Report précédent')
next_report = models.IntegerField(default=0, verbose_name='Report suivant')
class Meta:
verbose_name='Enseignant'
ordering = ('last_name', 'first_name')
def __str__(self):
return '{0} {1}'.format(self.last_name, self.first_name)
class Student(models.Model):
ext_id = models.IntegerField(null=True, unique=True, verbose_name='ID externe')
first_name = models.CharField(max_length=40, verbose_name='Prénom')