Add test2

This commit is contained in:
alazo 2018-05-23 15:17:03 +02:00
parent 326def22e5
commit 729bc1bea1
6 changed files with 39 additions and 93 deletions

1
.gitignore vendored
View file

@ -3,6 +3,7 @@ common/local_settings.py
/media/
/static/
*.sqlite3
*.json
db.eds
db.*
*.sql

View file

@ -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()
"""

View file

@ -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', '', '', '', '', ''],

View file

@ -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)

View file

@ -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
)

View file

@ -9,13 +9,13 @@
<div id="content-main">
<h1>Liste des compétences du PEC avec les modules correspondants</h1>
<table border="0">
{% for c in object_list %}
{% for competence in object_list %}
<tr>
<td colspan="3">{{ c }}</td>
<td colspan="3">{{ competence }}</td>
</tr>
<tr>
<th width="10px">&nbsp;</th>
<td colspan="2"><a href=" {% url 'module-detail' c.module.id %}">{{ c.module }}</a></td>
<td colspan="2"><a href=" {% url 'module-detail' competence.module.id %}">{{ competence.module }}</a></td>
</tr>
{% endfor %}
</table>