Adapt database schema

This commit is contained in:
Claude Paroz 2012-11-09 15:32:00 +01:00
parent 1a7f5c20f3
commit 8aec9ae94b
7 changed files with 21 additions and 8 deletions

Binary file not shown.

View file

@ -12,11 +12,14 @@ class StudentAdmin(admin.ModelAdmin):
class CorpContactAdmin(admin.ModelAdmin):
list_display = ('__unicode__', 'corporation')
fields = ('corporation', ('last_name', 'first_name'), ('tel', 'email'))
list_display = ('__unicode__', 'corporation', 'role')
fields = ('corporation', ('title', 'last_name', 'first_name'),
'role', ('tel', 'email'))
class ContactInline(admin.TabularInline):
class ContactInline(admin.StackedInline):
model = CorpContact
fields = (('title', 'last_name', 'first_name'),
('role', 'tel', 'email'))
extra = 1
class CorporationAdmin(admin.ModelAdmin):

View file

@ -101,8 +101,10 @@
"model": "stages.corpcontact",
"fields": {
"corporation": 1,
"title": "Monsieur",
"first_name": "Jean",
"last_name": "Horner",
"role": "Responsable formation",
"tel": "",
"email": ""
}

View file

@ -54,7 +54,7 @@ class Referent(models.Model):
class Corporation(models.Model):
name = models.CharField(max_length=100, verbose_name='Nom')
street = models.CharField(max_length=100, verbose_name='Rue')
street = models.CharField(max_length=100, blank=True, verbose_name='Rue')
pcode = models.CharField(max_length=4, verbose_name='Code postal')
city = models.CharField(max_length=40, verbose_name='Localité')
tel = models.CharField(max_length=20, blank=True, verbose_name='Téléphone')
@ -69,8 +69,10 @@ class Corporation(models.Model):
class CorpContact(models.Model):
corporation = models.ForeignKey(Corporation, verbose_name='Institution')
first_name = models.CharField(max_length=40, verbose_name='Prénom')
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')
role = models.CharField(max_length=40, verbose_name='Fonction')
tel = models.CharField(max_length=20, blank=True, verbose_name='Téléphone')
email = models.CharField(max_length=40, blank=True, verbose_name='Courriel')
@ -134,7 +136,7 @@ class Training(models.Model):
""" Stages """
student = models.ForeignKey(Student, verbose_name='Étudiant')
availability = models.OneToOneField(Availability, verbose_name='Disponibilité')
referent = models.ForeignKey(Referent, verbose_name='Référent')
referent = models.ForeignKey(Referent, null=True, blank=True, verbose_name='Référent')
comment = models.TextField(blank=True, verbose_name='Remarques')
class Meta:

View file

@ -76,11 +76,13 @@ def period_availabilities(request, pk):
def new_training(request):
if request.method != 'POST':
return HttpResponseNotAllowed()
ref_key = request.POST.get('referent')
try:
ref = Referent.objects.get(pk=ref_key) if ref_key else None
training = Training.objects.create(
student=Student.objects.get(pk=request.POST.get('student')),
availability=Availability.objects.get(pk=request.POST.get('avail')),
referent=Referent.objects.get(pk=request.POST.get('referent')),
referent=ref,
)
except Exception as exc:
return HttpResponse(str(exc))

View file

@ -23,6 +23,8 @@
input#valid_training { display: none; }
div#trainings { clear: both; padding-top: 1em; }
.missing { font-style: italic; color: red; }
</style>
{% endblock %}

View file

@ -1,3 +1,5 @@
{% for obj in trainings %}
<li>{{ obj.student }} - {{ obj.availability.corporation }} - {{ obj.availability.domain }}</li>
<li>{{ obj.student }} - {{ obj.availability.corporation }} - {{ obj.availability.domain }}
{% if obj.referent %} (réf: {{ obj.referent }}){% else %}- <span class="missing">Pas de référent</span>{% endif %}
</li>
{% endfor %}