diff --git a/.gitignore b/.gitignore
index 8818ad0..8ebe50d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@ common/local_settings.py
/media/
/static/
*.sqlite3
+*.json
db.eds
db.*
*.sql
diff --git a/cms/models.py b/cms/models.py
index 1de405e..1c936f2 100644
--- a/cms/models.py
+++ b/cms/models.py
@@ -6,25 +6,9 @@ Created on 17 nov. 2012
"""
from django.db import models
-from django.http.response import HttpResponse
-from django.conf import settings
from tinymce import models as tinymce_models
-from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Image
-from reportlab.lib.pagesizes import A4, landscape
-from reportlab.lib.units import cm
-from reportlab.lib.enums import TA_LEFT, TA_CENTER
-from reportlab.lib import colors
-from reportlab.lib.styles import ParagraphStyle as PS
-
-
-#style_8_c = PS(name='CORPS', fontName='Helvetica', fontSize=6, alignment=TA_CENTER)
-#style_normal = PS(name='CORPS', fontName='Helvetica', fontSize=8, alignment=TA_LEFT)
-#style_bold = PS(name='CORPS', fontName='Helvetica-Bold', fontSize=10, alignment=TA_LEFT)
-#style_title = PS(name='CORPS', fontName='Helvetica', fontSize=12, alignment=TA_LEFT)
-#style_adress = PS(name='CORPS', fontName='Helvetica', fontSize=10, alignment=TA_LEFT, leftIndent=300)
-
CHOIX_TYPE_SAVOIR = (
('Savoir', 'savoir'),
@@ -97,7 +81,6 @@ class Module(models.Model):
situation = models.TextField()
evaluation = models.TextField()
contenu = models.TextField()
- #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()
@@ -195,69 +178,3 @@ class UploadDoc(models.Model):
def __str__(self):
return self.titre
-
-"""
-class PDFResponse(HttpResponse):
-
- def __init__(self, filename, title='', portrait=True):
- HttpResponse.__init__(self, content_type='application/pdf')
- self['Content-Disposition'] = 'attachment; filename={0}'.format(filename)
- self['Content-Type'] = 'charset=utf-8'
- self.story = []
- image = Image(settings.MEDIA_ROOT + '/media/header.png', width=520, height=75)
- image.hAlign = TA_LEFT
- self.story.append(image)
- data = list(['Filières EDS', title])
- if portrait:
- t = Table(data, colWidths=[8*cm, 8*cm])
- else:
- t = Table(data, colWidths=[11*cm, 11*cm])
- t.setStyle(
- TableStyle(
- [
- ('ALIGN', (0, 0), (0, 0), 'LEFT'),
- ('ALIGN', (1, 0), (-1, -1), 'RIGHT'),
- ('LINEABOVE', (0, 0), (-1, -1), 0.5, colors.black),
- ('LINEBELOW', (0, -1), (-1, -1), 0.5, colors.black),
- ]
- )
- )
- t.hAlign = TA_LEFT
- self.story.append(t)
-
-
-class MyDocTemplate(SimpleDocTemplate):
-
- def __init__(self, name):
- SimpleDocTemplate.__init__(self, name, pagesize=A4, topMargin=0*cm)
- self.fileName = name
- self.PAGE_WIDTH = A4[0]
- self.PAGE_HEIGHT = A4[1]
- self.CENTRE_WIDTH = self.PAGE_WIDTH/2.0
- self.CENTRE_HEIGHT = self.PAGE_HEIGHT/2.0
-
- def beforePage(self):
- # page number
- self.canv.saveState()
- self.canv.setFontSize(8)
- self.canv.drawCentredString(self.CENTRE_WIDTH, 1*cm, "Page : " + str(self.canv.getPageNumber()))
- self.canv.restoreState()
-
-
-class MyDocTemplateLandscape(SimpleDocTemplate):
-
- def __init__(self, name):
- SimpleDocTemplate.__init__(self, name, pagesize=landscape(A4), topMargin=0*cm, leftMargin=2*cm)
- self.fileName = name
- self.PAGE_WIDTH = A4[1]
- self.PAGE_HEIGHT = A4[0]
- self.CENTRE_WIDTH = self.PAGE_WIDTH/2.0
- self.CENTRE_HEIGHT = self.PAGE_HEIGHT/2.0
-
- def beforePage(self):
- # page number
- self.canv.saveState()
- self.canv.setFontSize(8)
- self.canv.drawCentredString(self.CENTRE_WIDTH, 1*cm, "Page : " + str(self.canv.getPageNumber()))
- self.canv.restoreState()
-"""
diff --git a/cms/pdf.py b/cms/pdf.py
index 4344352..5d1e9bb 100644
--- a/cms/pdf.py
+++ b/cms/pdf.py
@@ -227,7 +227,6 @@ class FormationPlanPdf(EpcBaseDocTemplate):
return Preformatted(el1, style_normal, maxLineLength=length)
def produce(self, domain, process):
- print(domain[0], process[0])
data = [
['Domaines', 'Processus', 'Sem1', 'Sem2', 'Sem3', 'Sem4', 'Sem5', 'Sem6'],
[self.formating(domain[0]), self.formating(process[0], 60), 'M01', '', '', '', '', ''],
diff --git a/cms/tests.py b/cms/tests.py
index 6b3fb1a..fadc8fe 100644
--- a/cms/tests.py
+++ b/cms/tests.py
@@ -1,12 +1,19 @@
+import os
+
+from django.db.models import Sum
from django.conf import settings
from django.contrib.auth.models import User
from django.core import mail
-from django.test import TestCase, override_settings
+
+from django.test import TestCase, Client
from django.urls import reverse
# Create your tests here.
+from cms.models import Domaine, Processus, Module
+
class PdfTestCase(TestCase):
+ fixtures = ['enseignant.json', 'domaine.json', 'processus.json', 'module.json']
@classmethod
def setUpTestData(cls):
@@ -14,13 +21,33 @@ class PdfTestCase(TestCase):
User.objects.create_superuser('me', 'me@example.org', 'mepassword')
def setUp(self):
+ self.client = Client()
self.client.login(username='me', password='mepassword')
+ def test_index(self):
+ response = self.client.get('')
+ self.assertGreater(len(response.content), 200)
+
def test_plan_pdf(self):
response = self.client.get(reverse('plan-pdf'))
self.assertEqual(
- response['Content-Disposition'],
- 'attachment; filename="plan_formation.pdf"'
+ response['content-disposition'],
+ 'attachment; filename="EDS_plan_formation.pdf"'
)
- self.assertEqual(response['Content-Type'], 'application/pdf')
+ self.assertEqual(response['content-type'], 'application/pdf')
self.assertGreater(len(response.content), 200)
+
+ def test_periode_presentiel(self):
+ tot = 0
+ for m in Module.objects.all():
+ tot += m.total_presentiel
+ tot = Module.objects.aggregate(Sum('total_presentiel'))
+ self.assertEqual(tot, 1200)
+
+ def test_periode_pratique(self):
+ tot = Module.objects.aggregate(Sum('pratique_prof'))
+ self.assertEqual(tot['pratique_prof__sum'], 1200)
+
+ def test_periode_travail_perso(self):
+ tot = Module.objects.aggregate(Sum('travail_perso'))
+ self.assertEqual(tot['travail_perso__sum'], 1200)
\ No newline at end of file
diff --git a/cms/views.py b/cms/views.py
index d4924ae..1839546 100644
--- a/cms/views.py
+++ b/cms/views.py
@@ -6,11 +6,13 @@ Created on 4 déc. 2012
import os
import tempfile
-from django.views.generic import ListView, TemplateView, DetailView
-from django.db.models import F, Sum, Q
+
+from django.db.models import F, Sum
from django.http import HttpResponse
+from django.views.generic import ListView, TemplateView, DetailView
from cms.pdf import PeriodSemesterPdf, ModuleDescriptionPdf, FormationPlanPdf
+
from cms.models import (
Domaine, Processus, Module, Competence, Concept, UploadDoc
)
diff --git a/templates/cms/competence_list.html b/templates/cms/competence_list.html
index 9bea879..2418a9a 100644
--- a/templates/cms/competence_list.html
+++ b/templates/cms/competence_list.html
@@ -9,13 +9,13 @@
Liste des compétences du PEC avec les modules correspondants