From 729bc1bea15d814d95b9e8b774955830145399bc Mon Sep 17 00:00:00 2001 From: alazo Date: Wed, 23 May 2018 15:17:03 +0200 Subject: [PATCH] Add test2 --- .gitignore | 1 + cms/models.py | 83 ------------------------------ cms/pdf.py | 1 - cms/tests.py | 35 +++++++++++-- cms/views.py | 6 ++- templates/cms/competence_list.html | 6 +-- 6 files changed, 39 insertions(+), 93 deletions(-) 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

- {% for c in object_list %} + {% for competence in object_list %} - + - + {% endfor %}
{{ c }}{{ competence }}
 {{ c.module }}{{ competence.module }}