Upload document

This commit is contained in:
alazo 2017-04-19 18:49:49 +02:00
parent 30550d3066
commit 9f0e515f4e
12 changed files with 341 additions and 90 deletions

View file

@ -1,16 +1,21 @@
from django.contrib import admin from django.contrib import admin
from .models import (Enseignant, Domaine, Competence, SousCompetence, Objectif, from .models import (Enseignant, Domaine, Competence, SousCompetence, Objectif,
Ressource, Module, Processus, Document) Ressource, Module, Processus, Document, UploadDoc)
from .forms import (ProcessusAdminForm, ProcessusInlineAdminForm, ModuleAdminForm, DomaineAdminForm, CompetenceAdminForm, from .forms import (ProcessusAdminForm, ProcessusInlineAdminForm, ModuleAdminForm, DomaineAdminForm, CompetenceAdminForm,
SousCompetenceInlineAdminForm, CompetenceInlineAdminForm, ObjectifAdminForm, RessourceAdminForm, SousCompetenceInlineAdminForm, CompetenceInlineAdminForm, ObjectifAdminForm, RessourceAdminForm,
SousCompetenceAdminForm, DocumentAdminForm) SousCompetenceAdminForm, DocumentAdminForm, UploadAdminForm )
# Register your models here. # Register your models here.
class SousCompetenceInline(admin.TabularInline): class SousCompetenceInline(admin.TabularInline):
form = SousCompetenceInlineAdminForm form = SousCompetenceInlineAdminForm
model = SousCompetence model = SousCompetence
extra = 0 extra = 0
class CompetenceInline(admin.TabularInline): class CompetenceInline(admin.TabularInline):
form = CompetenceInlineAdminForm form = CompetenceInlineAdminForm
model = Competence model = Competence
@ -21,8 +26,6 @@ class SousCompetenceAdmin(admin.ModelAdmin):
form = SousCompetenceAdminForm form = SousCompetenceAdminForm
class RessourceAdmin(admin.ModelAdmin): class RessourceAdmin(admin.ModelAdmin):
form = RessourceAdminForm form = RessourceAdminForm
list_display = ('nom', 'module') list_display = ('nom', 'module')
@ -60,14 +63,14 @@ class DomaineAdmin(admin.ModelAdmin):
form = DomaineAdminForm form = DomaineAdminForm
inlines = [ProcessusInlineAdmin,] inlines = [ProcessusInlineAdmin,]
class DocumentAdmin(admin.ModelAdmin): class DocumentAdmin(admin.ModelAdmin):
form = DocumentAdminForm form = DocumentAdminForm
class Meta:
js = ( class UploadAdmin(admin.ModelAdmin):
'/static/js/tiny_mce/tiny_mce.js', form = UploadAdminForm
'/static/js/textarea.js',
)
admin.site.register(Enseignant) admin.site.register(Enseignant)
admin.site.register(Domaine, DomaineAdmin) admin.site.register(Domaine, DomaineAdmin)
@ -78,3 +81,5 @@ admin.site.register(Ressource, RessourceAdmin)
admin.site.register(Module, ModuleAdmin) admin.site.register(Module, ModuleAdmin)
admin.site.register(Processus, ProcessusAdmin) admin.site.register(Processus, ProcessusAdmin)
admin.site.register(Document, DocumentAdmin) admin.site.register(Document, DocumentAdmin)
admin.site.register(UploadDoc, UploadAdmin)

View file

@ -4,7 +4,9 @@ Created on 17 nov. 2012
@author: alzo @author: alzo
''' '''
from .models import Processus, Module, Domaine, Competence, SousCompetence, Document from .models import (Processus, Module, Domaine, Competence, SousCompetence, Document,
UploadDoc)
from django import forms from django import forms
from django.contrib import admin from django.contrib import admin
@ -164,3 +166,10 @@ class ModuleAdminForm(forms.ModelForm):
'evaluation': forms.Textarea(attrs={'cols': 125, 'rows':2}), 'evaluation': forms.Textarea(attrs={'cols': 125, 'rows':2}),
} }
class UploadAdminForm(forms.ModelForm):
class Meta:
model = UploadDoc
fields = ('titre', 'docfile', 'published', )

View file

@ -0,0 +1,155 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.4 on 2017-04-19 11:32
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import tinymce.models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Competence',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(blank=True, max_length=20)),
('nom', models.CharField(max_length=250)),
('type', models.CharField(blank=True, default='', max_length=35)),
],
options={
'verbose_name': 'compétence',
'ordering': ('code',),
},
),
migrations.CreateModel(
name='Document',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('docfile', models.FileField(upload_to='media/')),
('titre', models.CharField(blank=True, max_length=128)),
('texte', tinymce.models.HTMLField(blank=True)),
('published', models.BooleanField(default=False)),
],
),
migrations.CreateModel(
name='Domaine',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(blank=True, max_length=20)),
('nom', models.CharField(max_length=200)),
],
options={
'ordering': ('code',),
},
),
migrations.CreateModel(
name='Enseignant',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sigle', models.CharField(blank=True, default='', max_length=5)),
('nom', models.CharField(blank=True, default='', max_length=20)),
('prenom', models.CharField(blank=True, default='', max_length=20)),
('email', models.EmailField(blank=True, default='', max_length=254)),
],
options={
'ordering': ('nom',),
},
),
migrations.CreateModel(
name='Module',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(default='Code', max_length=10)),
('nom', models.CharField(default='Nom du module', max_length=100)),
('type', models.CharField(choices=[('Spécifique', 'spécifique'), ('Transversal', 'transversal')], max_length=20)),
('situation', models.TextField()),
('contenu', models.TextField()),
('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)),
('sem2', models.IntegerField(default=0)),
('sem3', models.IntegerField(default=0)),
('sem4', models.IntegerField(default=0)),
('sem5', models.IntegerField(default=0)),
('sem6', models.IntegerField(default=0)),
('semestre', models.CharField(default='', max_length=15)),
],
options={
'ordering': ('code',),
},
),
migrations.CreateModel(
name='Objectif',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('nom', models.CharField(max_length=200)),
('module', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='cms.Module')),
],
),
migrations.CreateModel(
name='Processus',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(blank=True, max_length=20)),
('nom', models.CharField(max_length=200)),
('description', models.TextField(default='')),
('domaine', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cms.Domaine')),
],
options={
'verbose_name_plural': 'processus',
'ordering': ('code',),
},
),
migrations.CreateModel(
name='Ressource',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('nom', models.CharField(max_length=200)),
('type', models.CharField(choices=[('Savoir', 'savoir'), ('Savoir méthodologique', 'savoir méthodologique'), ('Savoir relationnel', 'savoir relationnel')], default='Savoir', max_length=30)),
('module', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='cms.Module')),
],
),
migrations.CreateModel(
name='SousCompetence',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(blank=True, max_length=20)),
('nom', models.CharField(max_length=250)),
('competence', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cms.Competence')),
],
options={
'verbose_name': 'sous-compétence',
'ordering': ('code',),
},
),
migrations.AddField(
model_name='module',
name='processus',
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='cms.Processus'),
),
migrations.AddField(
model_name='domaine',
name='responsable',
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='cms.Enseignant'),
),
migrations.AddField(
model_name='competence',
name='module',
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='cms.Module'),
),
migrations.AddField(
model_name='competence',
name='proces_eval',
field=models.ForeignKey(default=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='cms.Processus'),
),
]

View file

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.4 on 2017-04-19 11:33
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('cms', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Upload',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('docfile', models.FileField(upload_to='doc/')),
('titre', models.CharField(max_length=100)),
('published', models.BooleanField(default=False)),
],
),
migrations.RemoveField(
model_name='document',
name='docfile',
),
]

View file

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.4 on 2017-04-19 12:09
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('cms', '0002_auto_20170419_1333'),
]
operations = [
migrations.RenameModel(
old_name='Upload',
new_name='UploadDoc',
),
]

View file

View file

@ -16,6 +16,7 @@ from reportlab.lib.units import cm
from reportlab.lib.enums import TA_LEFT, TA_CENTER from reportlab.lib.enums import TA_LEFT, TA_CENTER
from reportlab.lib import colors from reportlab.lib import colors
from reportlab.lib.styles import ParagraphStyle as PS from reportlab.lib.styles import ParagraphStyle as PS
style_8_c = PS(name='CORPS', fontName='Helvetica', fontSize=6, alignment = TA_CENTER) 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_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_bold = PS(name='CORPS', fontName='Helvetica-Bold', fontSize=10, alignment = TA_LEFT)
@ -35,14 +36,15 @@ CHOIX_TYPE_MODULE = (
) )
class Enseignant(models.Model): class Enseignant(models.Model):
class Meta:
ordering =('nom',)
sigle = models.CharField(max_length= 5, blank=True, default='') sigle = models.CharField(max_length= 5, blank=True, default='')
nom = models.CharField(max_length=20, blank=True, default='') nom = models.CharField(max_length=20, blank=True, default='')
prenom = models.CharField(max_length=20, blank=True, default='') prenom = models.CharField(max_length=20, blank=True, default='')
email = models.EmailField(blank=True, default='') email = models.EmailField(blank=True, default='')
class Meta:
ordering =('nom',)
def __str__(self): def __str__(self):
return '{0} {1}'.format(self.nom, self.prenom) return '{0} {1}'.format(self.nom, self.prenom)
@ -54,14 +56,15 @@ class Enseignant(models.Model):
class Domaine(models.Model): class Domaine(models.Model):
class Meta:
ordering = ('code',)
code = models.CharField(max_length=20, blank=True) code = models.CharField(max_length=20, blank=True)
nom = models.CharField(max_length=200, blank=False) nom = models.CharField(max_length=200, blank=False)
responsable = models.ForeignKey(Enseignant, null=True, default=None) responsable = models.ForeignKey(Enseignant, null=True, default=None)
height_screen = 50 #height_screen = 50
class Meta:
ordering = ('code',)
def __str__(self): def __str__(self):
return '{0} - {1}'.format(self.code, self.nom) return '{0} - {1}'.format(self.code, self.nom)
@ -69,10 +72,9 @@ class Domaine(models.Model):
def url(self): def url(self):
return "<a href='/domaine/{0}'>{1}</a>".format(self.id, self.__str__()) return "<a href='/domaine/{0}'>{1}</a>".format(self.id, self.__str__())
"""
def svg(self): def svg(self):
processus = self.processus_set.all() processus = self.processus_set.all()
svg = '<rect x="20" y="{0}" rx="5" ry="5" width="250" height="{1}" fill="{2}" stroke="black" stroke-width="1" />' 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>' txt = '<text x="25" y="{0}" style="stroke:#000000;font-size:10;">{1}</text>'
height_frame = processus.count()* self.height_screen height_frame = processus.count()* self.height_screen
@ -86,20 +88,20 @@ class Domaine(models.Model):
dic_js['resp'] = self.responsable.nom dic_js['resp'] = self.responsable.nom
return '{' return '{'
"""
class Processus(models.Model): class Processus(models.Model):
code = models.CharField(max_length=20, blank=True)
nom = models.CharField(max_length=200, blank=False)
domaine = models.ForeignKey(Domaine, null=False)
description = models.TextField(default='')
class Meta: class Meta:
ordering = ('code',) ordering = ('code',)
verbose_name_plural = 'processus' verbose_name_plural = 'processus'
code = models.CharField(max_length=20, blank=True)
nom = models.CharField(max_length=200, blank=False)
domaine = models.ForeignKey(Domaine, null=False)
description = models.TextField(default='')
def __str__(self): def __str__(self):
return '{0} - {1}'.format(self.code, self.nom) return '{0} - {1}'.format(self.code, self.nom)
@ -109,6 +111,9 @@ class Processus(models.Model):
class Module(models.Model): class Module(models.Model):
class Meta:
ordering = ('code',)
code = models.CharField(max_length=10, blank=False, default='Code') code = models.CharField(max_length=10, blank=False, default='Code')
nom = models.CharField(max_length=100, blank=False, default='Nom du module') nom = models.CharField(max_length=100, blank=False, default='Nom du module')
type = models.CharField(max_length=20, choices= CHOIX_TYPE_MODULE) type = models.CharField(max_length=20, choices= CHOIX_TYPE_MODULE)
@ -129,11 +134,6 @@ class Module(models.Model):
semestre = models.CharField(max_length=15, default='', blank=False) semestre = models.CharField(max_length=15, default='', blank=False)
processus = models.ForeignKey(Processus, null=False, default=None) processus = models.ForeignKey(Processus, null=False, default=None)
class Meta:
ordering = ('code',)
def __str__(self): def __str__(self):
return '{0} - {1}'.format(self.code, self.nom) return '{0} - {1}'.format(self.code, self.nom)
@ -145,6 +145,11 @@ class Module(models.Model):
class Competence(models.Model): class Competence(models.Model):
class Meta:
ordering = ('code',)
verbose_name = 'compétence'
code = models.CharField(max_length=20, blank=True) code = models.CharField(max_length=20, blank=True)
nom = models.CharField(max_length=250, blank=False) nom = models.CharField(max_length=250, blank=False)
type = models.CharField(max_length=35, blank=True, default='') type = models.CharField(max_length=35, blank=True, default='')
@ -152,29 +157,26 @@ class Competence(models.Model):
proces_eval = models.ForeignKey(Processus, null=True, default=True) proces_eval = models.ForeignKey(Processus, null=True, default=True)
list_display = ('code', 'nom', 'type','proces_eval') list_display = ('code', 'nom', 'type','proces_eval')
class Meta:
ordering = ('code',)
verbose_name = 'compétence'
def __str__(self): def __str__(self):
return '{0} - {1}'.format(self.code, self.nom) return '{0} - {1}'.format(self.code, self.nom)
class SousCompetence(models.Model): class SousCompetence(models.Model):
code = models.CharField(max_length=20, blank=True)
nom = models.CharField(max_length=250, blank=False)
competence = models.ForeignKey(Competence, null=False)
class Meta: class Meta:
ordering = ('code',) ordering = ('code',)
verbose_name = 'sous-compétence' verbose_name = 'sous-compétence'
code = models.CharField(max_length=20, blank=True)
nom = models.CharField(max_length=250, blank=False)
competence = models.ForeignKey(Competence, null=False)
def __str__(self): def __str__(self):
return '{0} - {1}'.format(self.code, self.nom) return '{0} - {1}'.format(self.code, self.nom)
class Ressource(models.Model): class Ressource(models.Model):
nom = models.CharField(max_length=200, blank=False) nom = models.CharField(max_length=200, blank=False)
type = models.CharField(max_length=30, choices = CHOIX_TYPE_SAVOIR, default='Savoir') type = models.CharField(max_length=30, choices = CHOIX_TYPE_SAVOIR, default='Savoir')
module=models.ForeignKey(Module, null=True, default=None) module=models.ForeignKey(Module, null=True, default=None)
@ -182,7 +184,9 @@ class Ressource(models.Model):
def __str__(self): def __str__(self):
return '{0}'.format(self.nom) return '{0}'.format(self.nom)
class Objectif(models.Model): class Objectif(models.Model):
nom = models.CharField(max_length=200, blank=False) nom = models.CharField(max_length=200, blank=False)
module=models.ForeignKey(Module, null=True, default=None) module=models.ForeignKey(Module, null=True, default=None)
@ -191,7 +195,8 @@ class Objectif(models.Model):
class Document(models.Model): class Document(models.Model):
docfile = models.FileField(upload_to='media', blank=True)
#docfile = models.FileField(upload_to='media/')
titre = models.CharField(max_length=128, blank=True) titre = models.CharField(max_length=128, blank=True)
texte = tinymce_models.HTMLField(blank=True,) texte = tinymce_models.HTMLField(blank=True,)
published = models.BooleanField(default=False) published = models.BooleanField(default=False)
@ -200,6 +205,14 @@ class Document(models.Model):
return self.titre return self.titre
class UploadDoc(models.Model):
docfile = models.FileField(upload_to='doc/')
titre = models.CharField(max_length=100, blank=False)
published = models.BooleanField(default=False)
def __str__(self):
return self.titre
@ -210,7 +223,7 @@ class PDFResponse(HttpResponse):
self['Content-Disposition'] = 'attachment; filename={0}'.format(filename) self['Content-Disposition'] = 'attachment; filename={0}'.format(filename)
self['Content-Type'] = 'charset=utf-8' self['Content-Type'] = 'charset=utf-8'
self.story = [] self.story = []
image = Image(settings.MEDIA_ROOT + '/media/header.png', width=480, height=80) image = Image(settings.MEDIA_ROOT + '/media/header.png', width=520, height=75)
image.hAlign = TA_LEFT image.hAlign = TA_LEFT
self.story.append(image) self.story.append(image)
@ -230,7 +243,6 @@ class PDFResponse(HttpResponse):
self.story.append(t) self.story.append(t)
class MyDocTemplate(SimpleDocTemplate): class MyDocTemplate(SimpleDocTemplate):
def __init__(self, name): def __init__(self, name):
@ -241,7 +253,6 @@ class MyDocTemplate(SimpleDocTemplate):
self.CENTRE_WIDTH = self.PAGE_WIDTH/2.0 self.CENTRE_WIDTH = self.PAGE_WIDTH/2.0
self.CENTRE_HEIGHT = self.PAGE_HEIGHT/2.0 self.CENTRE_HEIGHT = self.PAGE_HEIGHT/2.0
def beforePage(self): def beforePage(self):
# page number # page number
self.canv.saveState() self.canv.saveState()
@ -250,7 +261,6 @@ class MyDocTemplate(SimpleDocTemplate):
self.canv.restoreState() self.canv.restoreState()
class MyDocTemplateLandscape(SimpleDocTemplate): class MyDocTemplateLandscape(SimpleDocTemplate):
def __init__(self, name): def __init__(self, name):
@ -270,4 +280,3 @@ class MyDocTemplateLandscape(SimpleDocTemplate):

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
''' '''
Created on 4 déc. 2012 Created on 4 déc. 2012
@ -7,7 +6,8 @@ Created on 4 déc. 2012
import os import os
from django.shortcuts import render, render_to_response from django.shortcuts import render, render_to_response
from django.views.generic import ListView, TemplateView, DetailView from django.views.generic import ListView, TemplateView, DetailView
from .models import Domaine, Processus, Module, Competence, Document, PDFResponse, MyDocTemplate, MyDocTemplateLandscape from .models import (Domaine, Processus, Module, Competence, Document, UploadDoc,
PDFResponse, MyDocTemplate, MyDocTemplateLandscape)
from .models import style_normal, style_bold, style_title from .models import style_normal, style_bold, style_title
from django.db.models import F, Sum from django.db.models import F, Sum
from django.conf import settings from django.conf import settings
@ -172,37 +172,35 @@ class DocumentListView(ListView):
template_name = 'cms/document_list.html' template_name = 'cms/document_list.html'
model = Document model = Document
def get_context_data(self, **kwargs):
context = super(DocumentListView, self).get_context_data(**kwargs)
context['upload'] = UploadDoc.objects.filter(published=True)
return context
class DocumentDetailView(DetailView): class DocumentDetailView(DetailView):
template_name ='cms/document_detail.html' template_name ='cms/document_detail.html'
model = Document model = Document
def pdf_view(request): class UploadDetailView(DetailView):
with open('/path/to/my/file.pdf', 'r') as pdf: template_name = 'cms/upload_detail.html'
response = HttpResponse(pdf.read(), mimetype='application/pdf') model = UploadDoc
response['Content-Disposition'] = 'inline;filename=some_file.pdf'
return response def get_context_data(self, **kwargs):
pdf.closed context = super(UploadDetailView, self).get_context_data(**kwargs)
context['fichier'] = self.get_object().docfile.url
return context
class ModulePDF(DetailView): class ModulePDF(DetailView):
template_name = 'cms/module_detail.html' template_name = 'cms/module_detail.html'
model = Module model = Module
def get_object(self):
# Call the superclass
return super(ModulePDF, self).get_object()
def render_to_response(self, context, **response_kwargs): def render_to_response(self, context, **response_kwargs):
#return DetailView.render_to_response(self, context, **response_kwargs)
m = self.get_object() m = self.get_object()
response = PDFResponse('Module_{0}.pdf'.format(m.code) ,'Module de formation') response = PDFResponse('Module_{0}.pdf'.format(m.code) ,'Module de formation')
str_comp = '' str_comp = ''
for c in m.competence_set.all(): for c in m.competence_set.all():
str_comp += '- {0} ({1})\n'.format(c.nom, c.code) str_comp += '- {0} ({1})\n'.format(c.nom, c.code)
@ -249,16 +247,16 @@ class ModulePDF(DetailView):
response.story.append(Spacer(0,1*cm)) response.story.append(Spacer(0,1*cm))
response.story.append(t) response.story.append(t)
doc = MyDocTemplate(response) doc = MyDocTemplate(response)
doc.build(response.story) doc.build(response.story)
return response return response
"""
Calcul du nombre de périodes de formation
"""
def get_context(context): def get_context(context):
"""
Calcul du nombre de périodes de formation
"""
liste = Module.objects.exclude(periode_presentiel = 0) liste = Module.objects.exclude(periode_presentiel = 0)
#context['tot'] = liste.aggregate(Sum(F('periode_presentiel'))) #context['tot'] = liste.aggregate(Sum(F('periode_presentiel')))
@ -355,7 +353,7 @@ class PeriodePDFView(TemplateView):
return response return response
"""
class AddDocument(TemplateView): class AddDocument(TemplateView):
template_name = 'cms/upload.html' template_name = 'cms/upload.html'
@ -402,5 +400,5 @@ def pdf_view(request):
response['Content-Disposition'] = 'inline;filename=some_file.pdf' response['Content-Disposition'] = 'inline;filename=some_file.pdf'
return response return response
pdf.closed pdf.closed
"""

View file

@ -32,11 +32,12 @@ urlpatterns = [
url(r'^periodes$', views.PeriodeView.as_view(), name='periodes'), url(r'^periodes$', views.PeriodeView.as_view(), name='periodes'),
url(r'^periodes_pdf$', views.PeriodePDFView.as_view(), name='periodes-pdf'), url(r'^periodes_pdf$', views.PeriodePDFView.as_view(), name='periodes-pdf'),
url(r'^evaluation/$', views.EvaluationView.as_view(), name='evaluation'), url(r'^evaluation/$', views.EvaluationView.as_view(), name='evaluation'),
url(r'^upload/$', views.AddDocument.as_view(), name='upload'), #url(r'^upload/$', views.AddDocument.as_view(), name='upload'),
url(r'^download/(?P<file_name>.+)$', views.Download, name='download'), #url(r'^download/(?P<file_name>.+)$', views.Download, name='download'),
url(r'^calendrier/$', views.pdf_view, name='pdf-view'), #url(r'^calendrier/$', views.pdf_view, name='pdf-view'),
url(r'^module_pdf/(?P<pk>\d+)$', views.ModulePDF.as_view(), name='module-pdf'), url(r'^module_pdf/(?P<pk>\d+)$', views.ModulePDF.as_view(), name='module-pdf'),
url(r'^documents/$', views.DocumentListView.as_view(), name='document-list'), url(r'^documents/$', views.DocumentListView.as_view(), name='document-list'),
url(r'^document/(?P<pk>\d+)$', views.DocumentDetailView.as_view(), name='document-detail'), url(r'^document/(?P<pk>\d+)$', views.DocumentDetailView.as_view(), name='document-detail'),
url(r'^upload/(?P<pk>\d+)$', views.UploadDetailView.as_view(), name='upload-detail'),
url(r'^tinymce/', include('tinymce.urls'), name='tinymce-js'), url(r'^tinymce/', include('tinymce.urls'), name='tinymce-js'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View file

@ -26,7 +26,6 @@
<!-- <li><a href="{% url 'evaluation' %}">Evaluation</a>&nbsp;&nbsp;</li> --> <!-- <li><a href="{% url 'evaluation' %}">Evaluation</a>&nbsp;&nbsp;</li> -->
<li><a href="{% url 'document-list' %}">Documents</a>&nbsp;&nbsp;</li> <li><a href="{% url 'document-list' %}">Documents</a>&nbsp;&nbsp;</li>
<!-- <li><a href="{% url 'pdf-view' %}">Calendrier</a>&nbsp;&nbsp;</li>-->
{% if has_permission %} {% if has_permission %}
<li><a href="#">Calendrier</a>&nbsp;&nbsp;</li> <li><a href="#">Calendrier</a>&nbsp;&nbsp;</li>
{% endif %} {% endif %}

View file

@ -16,14 +16,26 @@
{% for doc in object_list %} {% for doc in object_list %}
{% if doc.published %} {% if doc.published %}
<li><a href="{% url 'document-detail' doc.id %}">{{doc}}</a></li> <li><a href="{% url 'document-detail' doc.id %}">{{doc}}</a></li>
{% else %} {% else %}
<li>{{doc}}&nbsp;&nbsp;(en travail)</li> <li>{{doc}}&nbsp;&nbsp;(en travail)</li>
{% endif %} {% endif %}
{% empty %} {% empty %}
<li>Aucun document disponible</li> <li>Aucun document disponible</li>
{% endfor %} {% endfor %}
{% for fic in upload %}
{% if fic.published %}
<li><a href="{% url 'upload-detail' fic.id %}">{{fic.titre}}</a></li>
{% else %}
<li>{{fic}}&nbsp;&nbsp;(en travail)</li>
{% endif %}
{% endfor %}
</ol> </ol>

View file

@ -0,0 +1,16 @@
{% extends "./base_site.html" %}
{% load i18n static %}
{% block coltype %}colMS{% endblock %}
{% block content %}
<div id="content-main">
<iframe src="{{fichier}}" width="1200" height="800" align="middle"></iframe>
</div>
{% endblock %}