diff --git a/monstage/admin.py b/monstage/admin.py index 8c38f3f..de6ac26 100644 --- a/monstage/admin.py +++ b/monstage/admin.py @@ -1,3 +1,26 @@ from django.contrib import admin +from django.contrib.auth.admin import UserAdmin +from django.contrib.auth.models import User +from monstage.models import * -# Register your models here. +class NormalienInline(admin.StackedInline): + model = Normalien + inline_classes = ("collapse open",) + +class UserAdmin(UserAdmin): + inlines = (NormalienInline, ) + + +class LieuStageInline(admin.StackedInline): + model = LieuStage + inline_classes = ("collapse open",) + extra = 0 + +class StageAdmin(admin.ModelAdmin): + inlines = (LieuStageInline, ) + +admin.site.unregister(User) +admin.site.register(User, UserAdmin) +admin.site.register(Lieu) +admin.site.register(StageMatiere) +admin.site.register(Stage, StageAdmin) \ No newline at end of file diff --git a/monstage/models.py b/monstage/models.py index fca7a03..cb41fca 100644 --- a/monstage/models.py +++ b/monstage/models.py @@ -26,8 +26,8 @@ class Normalien(models.Model): permanent_mail = models.CharField("Adresse e-mail permanente", max_length = 200, blank = True) class Meta: - verbose_name = "Profil élève" - verbose_name_plural = "Profils élèves" + verbose_name = u"Profil élève" + verbose_name_plural = u"Profils élèves" def __unicode__(self): return unicode(self.user.username) @@ -50,6 +50,20 @@ class Lieu(models.Model): def __unicode__(self): return u"%s (%s)" % (self.name, self.ville) + + class Meta: + verbose_name = "Lieu" + verbose_name_plural = "Lieux" + +class StageMatiere(models.Model): + name = models.CharField(_(u"Matière"), max_length = 30) + + class Meta: + verbose_name = "Matière des stages" + verbose_name_plural = "Matières des stages" + + def __unicode__(self): + return self.name class Stage(models.Model): user = models.ForeignKey(Normalien, related_name = "stages") @@ -63,6 +77,7 @@ class Stage(models.Model): sujet = models.CharField(_(u"Sujet"), max_length = 500) encadrants = models.CharField(_(u"Encadrants"), max_length = 500, blank = True) lieux = models.ManyToManyField(Lieu, related_name = "stages", through = "LieuStage") + matieres = models.ManyToManyField(StageMatiere, related_name = "stages") # Avis avis_encadrants = models.TextField(_(u"Avis sur les encadrants"), blank = True) @@ -72,18 +87,10 @@ class Stage(models.Model): def __unicode__(self): return u"%s : %s" % (self.user.profil.username, self.sujet) - - -class StageMatiere(models.Model): - name = models.CharField(_(u"Matière"), max_length = 30) - users = models.ManyToManyField(Stage, related_name = "matieres") - + class Meta: - verbose_name = "Matière des stages" - verbose_name_plural = "Matières des stages" - - def __unicode__(self): - return self.name + verbose_name = "Stage" + verbose_name_plural = "Stages" class LieuStage(models.Model): stage = models.ForeignKey(Stage) @@ -95,4 +102,8 @@ class LieuStage(models.Model): avis_lieustage = models.TextField(_(u"Le lieu du stage"), blank = True) avis_pratique = models.TextField(_(u"S'installer / Conseils pratiques"), blank = True) avis_visite = models.TextField(_(u"Que voir / que faire"), blank = True) - avis_anecdotes = models.TextField(_(u"Anecdotes"), blank = True) \ No newline at end of file + avis_anecdotes = models.TextField(_(u"Anecdotes"), blank = True) + + class Meta: + verbose_name = "Avis sur un lieu de stage" + verbose_name_plural = "Avis sur un lieu de stage" \ No newline at end of file