Move_Tiny_mce and ohter
4
.gitignore
vendored
|
|
@ -1,6 +1,8 @@
|
|||
*.pyc
|
||||
common/local_settings.py
|
||||
db.sqlite3
|
||||
/media/
|
||||
/static/
|
||||
*.sqlite3
|
||||
db.eds
|
||||
db.*
|
||||
*.sql
|
||||
|
|
|
|||
|
|
@ -33,17 +33,16 @@ class RessourceAdmin(admin.ModelAdmin):
|
|||
class ModuleAdmin(admin.ModelAdmin):
|
||||
form = ModuleAdminForm
|
||||
inlines = [CompetenceInline]
|
||||
readonly_fields = ('total_presentiel',)
|
||||
extra = 0
|
||||
fields = (('code', 'nom'),
|
||||
'situation',
|
||||
('contenu', 'contenu_published'),
|
||||
('didactique', 'didactique_published'),
|
||||
('evaluation', 'evaluation_published'),
|
||||
('periode_presentiel', 'travail_perso', 'pratique_prof'),
|
||||
('type', 'semestre'),
|
||||
('sem1', 'sem2'),
|
||||
('sem3', 'sem4'),
|
||||
('sem5', 'sem6'),
|
||||
('sem1', 'sem2', 'sem3', 'sem4', 'sem5', 'sem6'),
|
||||
('total_presentiel', 'travail_perso', 'pratique_prof'),
|
||||
('type', ),
|
||||
'processus',
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -148,10 +148,10 @@ class ModuleAdminForm(forms.ModelForm):
|
|||
model = Module
|
||||
fields = '__all__'
|
||||
widgets = {
|
||||
'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}),
|
||||
'nom': forms.Textarea(attrs={'cols': 50, 'rows': 1}),
|
||||
'description': forms.Textarea(attrs={'cols': 125, 'rows': 3}),
|
||||
'situation': forms.Textarea(attrs={'cols': 125, 'rows': 4}),
|
||||
'contenu': forms.Textarea(attrs={'cols': 125, 'rows': 3}),
|
||||
'didactique': forms.Textarea(attrs={'cols': 125, 'rows': 2}),
|
||||
'evaluation': forms.Textarea(attrs={'cols': 125, 'rows': 2}),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ class Module(models.Model):
|
|||
situation = models.TextField()
|
||||
evaluation = models.TextField()
|
||||
contenu = models.TextField()
|
||||
periode_presentiel = models.IntegerField(verbose_name='Présentiel')
|
||||
#periode_presentiel = models.IntegerField(verbose_name='Présentiel')
|
||||
travail_perso = models.IntegerField(verbose_name='Travail personnel')
|
||||
pratique_prof = models.IntegerField(default=0, verbose_name='Pratique prof.')
|
||||
didactique = models.TextField()
|
||||
|
|
@ -125,14 +125,18 @@ class Module(models.Model):
|
|||
|
||||
def url_code(self):
|
||||
return "<a href='/module/{0}' title=\"{2}\">{1}</a>".format(self.pk, self.code, self.nom)
|
||||
|
||||
|
||||
|
||||
@property
|
||||
def total_presentiel(self):
|
||||
return self.sem1 + self.sem2 + self.sem3 + self.sem4 + self.sem5 + self.sem6 - self.pratique_prof
|
||||
|
||||
|
||||
class Competence(models.Model):
|
||||
code = models.CharField(max_length=20, blank=True)
|
||||
nom = models.CharField(max_length=250, blank=False)
|
||||
type = models.CharField(max_length=35, blank=True, default='')
|
||||
module = models.ForeignKey(Module, null=True, blank=True, default=None, on_delete=models.SET_NULL)
|
||||
proces_eval = models.ForeignKey(Processus, null=True, default=True)
|
||||
proces_eval = models.ForeignKey(Processus, null=True, default=True, on_delete=models.SET_NULL)
|
||||
list_display = ('code', 'nom', 'type', 'proces_eval')
|
||||
|
||||
class Meta:
|
||||
|
|
@ -183,7 +187,7 @@ class Document(models.Model):
|
|||
|
||||
|
||||
class UploadDoc(models.Model):
|
||||
docfile = models.FileField(upload_to='doc/')
|
||||
docfile = models.FileField(upload_to='doc')
|
||||
titre = models.CharField(max_length=100, blank=False)
|
||||
published = models.BooleanField(default=False)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
import os
|
||||
|
||||
from django.conf import settings
|
||||
from reportlab.platypus import (SimpleDocTemplate, Spacer, Frame, Paragraph, Preformatted,
|
||||
PageTemplate, NextPageTemplate, FrameBreak, Table, TableStyle)
|
||||
from reportlab.lib.pagesizes import A4, landscape
|
||||
|
|
@ -10,12 +8,13 @@ from reportlab.lib import colors
|
|||
from reportlab.lib.colors import HexColor
|
||||
from reportlab.lib.styles import ParagraphStyle as ps
|
||||
from reportlab.pdfgen import canvas
|
||||
from django.contrib.staticfiles.finders import find
|
||||
|
||||
style_normal = ps(name='CORPS', fontName='Helvetica', fontSize=9, alignment=TA_LEFT)
|
||||
style_bold = ps(name='CORPS', fontName='Helvetica-Bold', fontSize=10, alignment=TA_LEFT)
|
||||
|
||||
LOGO_EPC = os.path.join(settings.MEDIA_ROOT, 'logo_EPC.png')
|
||||
LOGO_ESNE = os.path.join(settings.MEDIA_ROOT, 'logo_ESNE.png')
|
||||
LOGO_EPC = find('img/logo_EPC.png')
|
||||
LOGO_ESNE = find('img/logo_ESNE.png')
|
||||
FILIERE = 'Formation EDS'
|
||||
|
||||
class NumberedCanvas(canvas.Canvas):
|
||||
|
|
@ -142,7 +141,7 @@ class ModuleDescriptionPdf(EpcBaseDocTemplate):
|
|||
['Evaluation', module.evaluation],
|
||||
['Type', '{0}, obligatoire'.format(module.type)],
|
||||
['Semestre', 'Sem. {0}'.format(module.semestre)],
|
||||
['Présentiel', '{0} heures'.format(module.periode_presentiel)],
|
||||
['Présentiel', '{0} heures'.format(module.total_presentiel)],
|
||||
['Travail personnel', '{0} heures'.format(module.travail_perso)],
|
||||
['Responsable', module.processus.domaine.responsable.descr_pdf()]
|
||||
]
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 354 B |
|
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 329 B |
|
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 331 B |
|
Before Width: | Height: | Size: 342 B After Width: | Height: | Size: 342 B |
|
Before Width: | Height: | Size: 340 B After Width: | Height: | Size: 340 B |
|
Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 336 B |
|
Before Width: | Height: | Size: 338 B After Width: | Height: | Size: 338 B |
|
Before Width: | Height: | Size: 343 B After Width: | Height: | Size: 343 B |
|
Before Width: | Height: | Size: 321 B After Width: | Height: | Size: 321 B |
|
Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 323 B |
|
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 344 B |
|
Before Width: | Height: | Size: 338 B After Width: | Height: | Size: 338 B |
|
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 328 B |
|
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 337 B |
|
Before Width: | Height: | Size: 350 B After Width: | Height: | Size: 350 B |
|
Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 336 B |
|
Before Width: | Height: | Size: 87 B After Width: | Height: | Size: 87 B |
|
Before Width: | Height: | Size: 810 B After Width: | Height: | Size: 810 B |
|
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 272 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 907 B After Width: | Height: | Size: 907 B |
|
Before Width: | Height: | Size: 909 B After Width: | Height: | Size: 909 B |
|
Before Width: | Height: | Size: 769 B After Width: | Height: | Size: 769 B |
|
Before Width: | Height: | Size: 84 B After Width: | Height: | Size: 84 B |