From a273df0538ab9d1e9213a75afd6ada95f0c6ce56 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Thu, 13 Dec 2012 14:41:13 +0100 Subject: [PATCH] Add some more db fields --- docs/SchemaRelationnel.odg | Bin 20384 -> 20844 bytes stages/admin.py | 6 +++--- stages/fixtures/test_fixture.json | 1 + stages/models.py | 4 ++++ stages/static/js/attribution.js | 2 +- stages/views.py | 6 +++++- templates/attribution.html | 2 +- 7 files changed, 15 insertions(+), 6 deletions(-) diff --git a/docs/SchemaRelationnel.odg b/docs/SchemaRelationnel.odg index b2e2b2a32dd5b946e6d9247f889c9eaa8ff70760..4bb305c060d28e1965d126eff2187447f02e3fe6 100644 GIT binary patch delta 15891 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 delta 15457 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 diff --git a/stages/admin.py b/stages/admin.py index 7b2922c..8d5af0a 100644 --- a/stages/admin.py +++ b/stages/admin.py @@ -10,7 +10,7 @@ class StudentAdmin(admin.ModelAdmin): list_display = ('__unicode__', 'pcode', 'city', 'klass') list_filter = ('klass',) search_fields = ('last_name', 'first_name', 'pcode', 'city', 'klass') - fields = (('last_name', 'first_name'), ('pcode', 'city'), + fields = (('last_name', 'first_name'), ('pcode', 'city'), ('email', 'tel'), 'birth_date', 'klass', 'archived') def get_readonly_fields(self, request, obj=None): @@ -26,12 +26,12 @@ class ReferentAdmin(admin.ModelAdmin): class CorpContactAdmin(admin.ModelAdmin): list_display = ('__unicode__', 'corporation', 'role') - fields = ('corporation', ('title', 'last_name', 'first_name'), + fields = (('corporation', 'is_main'), ('title', 'last_name', 'first_name'), 'role', ('tel', 'email')) class ContactInline(admin.StackedInline): model = CorpContact - fields = (('title', 'last_name', 'first_name'), + fields = ('is_main', ('title', 'last_name', 'first_name'), ('role', 'tel', 'email')) extra = 1 diff --git a/stages/fixtures/test_fixture.json b/stages/fixtures/test_fixture.json index 9ba0f37..88db79f 100644 --- a/stages/fixtures/test_fixture.json +++ b/stages/fixtures/test_fixture.json @@ -136,6 +136,7 @@ "corporation": 1, "title": "Monsieur", "first_name": "Jean", + "is_main": true, "last_name": "Horner", "role": "Responsable formation", "tel": "", diff --git a/stages/models.py b/stages/models.py index 9c8330e..34af596 100644 --- a/stages/models.py +++ b/stages/models.py @@ -53,6 +53,8 @@ class Student(models.Model): birth_date = models.DateField(verbose_name='Date de naissance') pcode = models.CharField(max_length=4, verbose_name='Code postal') city = models.CharField(max_length=40, verbose_name='Localité') + tel = models.CharField(max_length=40, blank=True, verbose_name='Téléphone') + email = models.EmailField(verbose_name='Courriel', blank=True) klass = models.ForeignKey(Klass, verbose_name='Classe') archived = models.BooleanField(default=False, verbose_name='Archivé') @@ -107,6 +109,7 @@ class Corporation(models.Model): class Meta: verbose_name = "Institution" + ordering = ('name',) def __unicode__(self): return self.name @@ -114,6 +117,7 @@ class Corporation(models.Model): class CorpContact(models.Model): corporation = models.ForeignKey(Corporation, verbose_name='Institution') + is_main = models.BooleanField(default=False, verbose_name='Contact principal') title = models.CharField(max_length=40, blank=True, verbose_name='Civilité') first_name = models.CharField(max_length=40, blank=True, verbose_name='Prénom') last_name = models.CharField(max_length=40, verbose_name='Nom') diff --git a/stages/static/js/attribution.js b/stages/static/js/attribution.js index f9625e7..10a7354 100644 --- a/stages/static/js/attribution.js +++ b/stages/static/js/attribution.js @@ -4,7 +4,7 @@ function update_periods(section_id) { sel.append($("