Merge branch 'master' of https://github.com/alazo/eds
This commit is contained in:
commit
b8c01e477a
10 changed files with 208 additions and 51 deletions
28
cms/admin.py
28
cms/admin.py
|
|
@ -1,19 +1,30 @@
|
|||
from django.contrib import admin
|
||||
from .models import (Enseignant, Domaine, Competence, SousCompetence, Objectif,
|
||||
Ressource, Module, Processus)
|
||||
from .forms import ProcessusAdminForm, ModuleAdminForm, DomaineAdminForm
|
||||
from .forms import (ProcessusAdminForm, ProcessusInlineAdminForm, ModuleAdminForm, DomaineAdminForm, CompetenceAdminForm,
|
||||
SousCompetenceInlineAdminForm, CompetenceInlineAdminForm, ObjectifAdminForm, RessourceAdminForm,
|
||||
SousCompetenceAdminForm)
|
||||
# Register your models here.
|
||||
|
||||
class SousCompetenceInline(admin.TabularInline):
|
||||
form = SousCompetenceInlineAdminForm
|
||||
model = SousCompetence
|
||||
extra = 0
|
||||
|
||||
class CompetenceInline(admin.TabularInline):
|
||||
form = CompetenceInlineAdminForm
|
||||
model = Competence
|
||||
extra=0
|
||||
#template ='templates/admin/cms/processus/edit_inline/tabular.html'
|
||||
|
||||
class SousCompetenceAdmin(admin.ModelAdmin):
|
||||
form = SousCompetenceAdminForm
|
||||
|
||||
|
||||
|
||||
|
||||
class RessourceAdmin(admin.ModelAdmin):
|
||||
form = RessourceAdminForm
|
||||
list_display = ('nom', 'module')
|
||||
|
||||
|
||||
|
|
@ -26,12 +37,19 @@ class ModuleAdmin(admin.ModelAdmin):
|
|||
class ProcessusAdmin(admin.ModelAdmin):
|
||||
form = ProcessusAdminForm
|
||||
|
||||
class ProcessusAdminInline(admin.TabularInline):
|
||||
|
||||
class ObjectifAdmin(admin.ModelAdmin):
|
||||
form = ObjectifAdminForm
|
||||
|
||||
|
||||
class ProcessusInlineAdmin(admin.TabularInline):
|
||||
form = ProcessusInlineAdminForm
|
||||
model = Processus
|
||||
extra=0
|
||||
|
||||
|
||||
class CompetenceAdmin(admin.ModelAdmin):
|
||||
form = CompetenceAdminForm
|
||||
list_display = ('code', 'nom', 'module')
|
||||
list_editable = ('module',)
|
||||
inlines = (SousCompetenceInline,)
|
||||
|
|
@ -40,14 +58,14 @@ class CompetenceAdmin(admin.ModelAdmin):
|
|||
class DomaineAdmin(admin.ModelAdmin):
|
||||
list_display = ('nom', 'responsable',)
|
||||
form = DomaineAdminForm
|
||||
inlines = [ProcessusAdminInline,]
|
||||
inlines = [ProcessusInlineAdmin,]
|
||||
|
||||
|
||||
admin.site.register(Enseignant)
|
||||
admin.site.register(Domaine, DomaineAdmin)
|
||||
admin.site.register(Competence, CompetenceAdmin)
|
||||
admin.site.register(SousCompetence)
|
||||
admin.site.register(Objectif)
|
||||
admin.site.register(SousCompetence, SousCompetenceAdmin)
|
||||
admin.site.register(Objectif, ObjectifAdmin)
|
||||
admin.site.register(Ressource, RessourceAdmin)
|
||||
admin.site.register(Module, ModuleAdmin)
|
||||
admin.site.register(Processus, ProcessusAdmin)
|
||||
|
|
|
|||
118
cms/forms.py
118
cms/forms.py
|
|
@ -4,7 +4,7 @@ Created on 17 nov. 2012
|
|||
|
||||
@author: alzo
|
||||
'''
|
||||
from .models import Processus, Module, Domaine
|
||||
from .models import Processus, Module, Domaine, Competence, SousCompetence
|
||||
from django import forms
|
||||
|
||||
from django.contrib import admin
|
||||
|
|
@ -14,7 +14,8 @@ from _collections_abc import __all__
|
|||
|
||||
class DocumentForm(forms.Form):
|
||||
docfile = forms.FileField(label='Selectionner un fichier', help_text='Taille max.: 42 megabytes')
|
||||
|
||||
|
||||
|
||||
class ProcessusAdminForm(forms.ModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
@ -25,7 +26,8 @@ class ProcessusAdminForm(forms.ModelForm):
|
|||
model = Processus
|
||||
fields = ('code', 'nom', 'domaine', 'description')
|
||||
widgets = {
|
||||
'nom': forms.Textarea(attrs={'cols': 75, 'rows':2}),
|
||||
'nom': forms.Textarea(attrs={'cols': 125, 'rows':2}),
|
||||
'description': forms.Textarea(attrs={'cols': 125, 'rows':8}),
|
||||
}
|
||||
|
||||
class DomaineAdminForm(forms.ModelForm):
|
||||
|
|
@ -37,9 +39,103 @@ class DomaineAdminForm(forms.ModelForm):
|
|||
model = Domaine
|
||||
fields = ('code', 'nom', 'responsable')
|
||||
widgets = {
|
||||
'nom': forms.Textarea(attrs={'cols': 75, 'rows':2}),
|
||||
'nom': forms.Textarea(attrs={'cols': 125, 'rows':2}),
|
||||
}
|
||||
|
||||
|
||||
class CompetenceAdminForm(forms.ModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(CompetenceAdminForm, self).__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
model = Competence
|
||||
fields = ('__all__')
|
||||
widgets = {
|
||||
'nom': forms.Textarea(attrs={'cols': 125, 'rows':2}),
|
||||
}
|
||||
|
||||
|
||||
class SousCompetenceAdminForm(forms.ModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(SousCompetenceAdminForm, self).__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
model = SousCompetence
|
||||
fields = ('__all__')
|
||||
widgets = {
|
||||
'nom': forms.Textarea(attrs={'cols': 125, 'rows':2}),
|
||||
}
|
||||
|
||||
|
||||
class CompetenceInlineAdminForm(forms.ModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(CompetenceInlineAdminForm, self).__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
model = SousCompetence
|
||||
fields = ('__all__')
|
||||
widgets = {
|
||||
'code': forms.Textarea(attrs={'cols': 5, 'rows':1}),
|
||||
'nom': forms.Textarea(attrs={'cols': 125, 'rows':2}),
|
||||
}
|
||||
|
||||
|
||||
class SousCompetenceInlineAdminForm(forms.ModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(SousCompetenceInlineAdminForm, self).__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
model = SousCompetence
|
||||
fields = ('__all__')
|
||||
widgets = {
|
||||
'code': forms.Textarea(attrs={'cols': 5, 'rows':1}),
|
||||
'nom': forms.Textarea(attrs={'cols': 125, 'rows':1}),
|
||||
}
|
||||
|
||||
|
||||
class ProcessusInlineAdminForm(forms.ModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(ProcessusInlineAdminForm, self).__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
model = SousCompetence
|
||||
fields = ('__all__')
|
||||
widgets = {
|
||||
'code': forms.Textarea(attrs={'cols': 5, 'rows':1}),
|
||||
'nom': forms.Textarea(attrs={'cols': 75, 'rows':4}),
|
||||
'description': forms.Textarea(attrs={'cols': 95, 'rows':6}),
|
||||
}
|
||||
|
||||
class ObjectifAdminForm(forms.ModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(ObjectifAdminForm, self).__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
model = SousCompetence
|
||||
fields = ('__all__')
|
||||
widgets = {
|
||||
'nom': forms.Textarea(attrs={'cols': 125, 'rows':2}),
|
||||
}
|
||||
|
||||
|
||||
class RessourceAdminForm(forms.ModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(RessourceAdminForm, self).__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
model = SousCompetence
|
||||
fields = ('__all__')
|
||||
widgets = {
|
||||
'nom': forms.Textarea(attrs={'cols': 125, 'rows':3}),
|
||||
}
|
||||
|
||||
|
||||
class ModuleAdminForm(forms.ModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
@ -50,11 +146,11 @@ class ModuleAdminForm(forms.ModelForm):
|
|||
model = Module
|
||||
fields = ('__all__')
|
||||
widgets = {
|
||||
'nom': forms.Textarea(attrs={'cols': 73, 'rows':2}),
|
||||
'description': forms.Textarea(attrs={'cols': 73, 'rows':4}),
|
||||
'situation': forms.Textarea(attrs={'cols': 73, 'rows':6}),
|
||||
'contenu': forms.Textarea(attrs={'cols': 73, 'rows':4}),
|
||||
'didactique': forms.Textarea(attrs={'cols': 73, 'rows':4}),
|
||||
'evaluation': forms.Textarea(attrs={'cols': 73, 'rows':2}),
|
||||
'nom': forms.Textarea(attrs={'cols': 125, 'rows':2}),
|
||||
'description': forms.Textarea(attrs={'cols': 125, 'rows':4}),
|
||||
'situation': forms.Textarea(attrs={'cols': 125, 'rows':6}),
|
||||
'contenu': forms.Textarea(attrs={'cols': 125, 'rows':4}),
|
||||
'didactique': forms.Textarea(attrs={'cols': 125, 'rows':2}),
|
||||
'evaluation': forms.Textarea(attrs={'cols': 125, 'rows':2}),
|
||||
}
|
||||
|
||||
30
cms/migrations/0017_auto_20170308_0437.py
Normal file
30
cms/migrations/0017_auto_20170308_0437.py
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.10.4 on 2017-03-08 03:37
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cms', '0016_remove_module_description'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='module',
|
||||
name='periode_presentiel',
|
||||
field=models.IntegerField(verbose_name='Période en présentiel'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='module',
|
||||
name='pratique_prof',
|
||||
field=models.IntegerField(default=0, verbose_name='Pratique professionnelle'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='module',
|
||||
name='travail_perso',
|
||||
field=models.IntegerField(verbose_name='Travail personnel'),
|
||||
),
|
||||
]
|
||||
|
|
@ -47,25 +47,9 @@ class Enseignant(models.Model):
|
|||
return '{0} {1}'.format(self.nom, self.prenom)
|
||||
|
||||
def descr(self):
|
||||
return '{0} (<A HREF="{1}">{3}</A>)'.format(self.__str__(), self.email, self.email)
|
||||
|
||||
|
||||
class SVG_Domaine:
|
||||
compteur = 0
|
||||
x = 30
|
||||
y = 10
|
||||
width = 200
|
||||
svg = '<rect x="20" y="{0}" rx="5" ry="5" width="60" height="{1}" fill="{3}" stroke="black" stroke-width="2" />'
|
||||
txt = '<text x="25" y="{0}" style="stroke:#000000;font-size:12;">{1}</text>'
|
||||
|
||||
def get_svg(self):
|
||||
return '{0}{1}'.format(self.svg, self.txt)
|
||||
|
||||
def __init__(self, domaine):
|
||||
SVG_Domaine.compteur += 1
|
||||
self.svg = self.svg.format(20, 100, settings.DOMAINE_COULEUR[domaine.code])
|
||||
self.txt = self.txt.format(20, domaine.__str__())
|
||||
|
||||
|
||||
return '{0} (<a href="mailto:{1}">{2}</A>)'.format(self.__str__(), self.email, self.email)
|
||||
|
||||
|
||||
|
||||
class Domaine(models.Model):
|
||||
|
|
@ -73,6 +57,8 @@ class Domaine(models.Model):
|
|||
nom = models.CharField(max_length=200, blank=False)
|
||||
responsable = models.ForeignKey(Enseignant, null=True, default=None)
|
||||
|
||||
height_screen = 50
|
||||
|
||||
class Meta:
|
||||
ordering = ('code',)
|
||||
|
||||
|
|
@ -83,10 +69,14 @@ class Domaine(models.Model):
|
|||
return "<a href='/domaine/{0}'>{1}</a>".format(self.id, self.__str__())
|
||||
|
||||
def svg(self):
|
||||
svg = '<rect x="20" y="{0}" rx="5" ry="5" width="200" height="{1}" fill="{2}" stroke="black" stroke-width="1" />'
|
||||
txt = '<text x="25" y="{0}" style="stroke:#000000;font-size:10;">{1}</text>'
|
||||
processus = self.processus_set.all()
|
||||
|
||||
return svg.format(20, 100, settings.DOMAINE_COULEURS[self.code]) + txt.format(50, self.__str__())
|
||||
|
||||
svg = '<rect x="20" y="{0}" rx="5" ry="5" width="250" height="{1}" fill="{2}" stroke="black" stroke-width="1" />'
|
||||
txt = '<text x="25" y="{0}" style="stroke:#000000;font-size:10;">{1}</text>'
|
||||
height_frame = processus.count()* self.height_screen
|
||||
color = settings.DOMAINE_COULEURS[self.code]
|
||||
return svg.format(20, height_frame , color) + txt.format(50, self.__str__())
|
||||
|
||||
|
||||
|
||||
|
|
@ -117,9 +107,9 @@ class Module(models.Model):
|
|||
situation = models.TextField()
|
||||
evaluation = models.TextField()
|
||||
contenu = models.TextField()
|
||||
periode_presentiel = models.IntegerField()
|
||||
travail_perso = models.IntegerField()
|
||||
pratique_prof = models.IntegerField(default=0)
|
||||
periode_presentiel = models.IntegerField(verbose_name='Période en présentiel')
|
||||
travail_perso = models.IntegerField(verbose_name = 'Travail personnel')
|
||||
pratique_prof = models.IntegerField(default=0, verbose_name='Pratique professionnelle')
|
||||
didactique = models.TextField()
|
||||
evaluation = models.TextField()
|
||||
sem1 = models.IntegerField(default=0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue