Make url/url_code methods safe
This commit is contained in:
parent
5dc29dd907
commit
eb200de278
6 changed files with 52 additions and 53 deletions
|
|
@ -5,6 +5,7 @@ Created on 17 nov. 2012
|
|||
"""
|
||||
|
||||
from django.db import models
|
||||
from django.utils.html import format_html
|
||||
|
||||
from tinymce import models as tinymce_models
|
||||
|
||||
|
|
@ -53,7 +54,7 @@ class Domaine(models.Model):
|
|||
return '{0} - {1}'.format(self.code, self.nom)
|
||||
|
||||
def url(self):
|
||||
return "<a href='/domaine/{0}/'>{1}</a>".format(self.pk, self.__str__())
|
||||
return format_html('<a href="/domaine/{0}/">{1}</a>', self.pk, str(self))
|
||||
|
||||
|
||||
class Processus(models.Model):
|
||||
|
|
@ -70,7 +71,7 @@ class Processus(models.Model):
|
|||
return '{0} - {1}'.format(self.code, self.nom)
|
||||
|
||||
def url(self):
|
||||
return "<a href='/processus/{0}'>{1}</a>".format(self.pk, self.__str__())
|
||||
return format_html('<a href="/processus/{0}/">{1}</a>', self.pk, str(self))
|
||||
|
||||
|
||||
class Module(models.Model):
|
||||
|
|
@ -103,10 +104,10 @@ class Module(models.Model):
|
|||
return '{0} - {1}'.format(self.code, self.nom)
|
||||
|
||||
def url(self):
|
||||
return "<a href='/module/{0}/'>{1}</a>".format(self.pk, self.__str__())
|
||||
return format_html('<a href="/module/{0}/">{1}</a>', self.pk, str(self))
|
||||
|
||||
def url_code(self):
|
||||
return "<a href='/module/{0}/' title=\"{2}\">{1}</a>".format(self.pk, self.code, self.nom)
|
||||
return format_html('<a href="/module/{0}/" title="{2}">{1}</a>', self.pk, self.code, self.nom)
|
||||
|
||||
@property
|
||||
def total_presentiel(self):
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ from django.core import mail
|
|||
|
||||
from django.test import TestCase, Client
|
||||
from django.urls import reverse
|
||||
# Create your tests here.
|
||||
|
||||
from cms.models import Domaine, Processus, Module
|
||||
|
||||
|
||||
|
|
@ -17,11 +17,9 @@ class PdfTestCase(TestCase):
|
|||
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
|
||||
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):
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<div id="content-main">
|
||||
<h1>Domaine: {{ object }}</h1>
|
||||
{% for p in object.processus_set.all %}
|
||||
<div class="processus"><h2>Processus: {{ p.url|safe }}</h2></div>
|
||||
<div class="processus"><h2>Processus: {{ p.url }}</h2></div>
|
||||
{% for m in p.module_set.all %}
|
||||
<div class="module">Module: <a href="{% url 'module-detail' m.id %}">{{ m }}</a></div>
|
||||
<div class="competence">Compétences visées</div>
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@
|
|||
<th width="180px" style="text-align:center;">Sem6</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4" class="l1 d">{{ D1.url|safe }}</td>
|
||||
<td rowspan="2" class="l1 p">{{ P01.url|safe }}</td>
|
||||
<td class="l1 m">{{ M01.url_code|safe }}</td>
|
||||
<td rowspan="4" class="l1 d">{{ D1.url }}</td>
|
||||
<td rowspan="2" class="l1 p">{{ P01.url }}</td>
|
||||
<td class="l1 m">{{ M01.url_code }}</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="l1 m" >{{ M02.url_code|safe }}</td>
|
||||
<td class="l1 m" >{{ M02.url_code }}</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
|
|
@ -35,18 +35,18 @@
|
|||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2" class="l1 p">{{ P02.url|safe }}</td>
|
||||
<td rowspan="2" class="l1 p">{{ P02.url }}</td>
|
||||
<td></td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td class="l1 m">{{ M03.url_code|safe }}</td>
|
||||
<td class="l1 m">{{ M03.url_code }}</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<td></td>
|
||||
<td class="l1 m">{{ M04.url_code|safe }}</td>
|
||||
<td class="l1 m">{{ M04.url_code }}</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
|
|
@ -54,92 +54,92 @@
|
|||
</tr>
|
||||
<!-- Ligne 2 -->
|
||||
<tr>
|
||||
<td rowspan="3" class="l2 d">{{ D2.url|safe }}</td>
|
||||
<td class="l2 p">{{ P03.url|safe }}</td>
|
||||
<td class="l2 m">{{ M05.url_code|safe }}</td>
|
||||
<td rowspan="3" class="l2 d">{{ D2.url }}</td>
|
||||
<td class="l2 p">{{ P03.url }}</td>
|
||||
<td class="l2 m">{{ M05.url_code }}</td>
|
||||
<td> </td>
|
||||
<td class="l2 m">{{ M06.url_code|safe }}</td>
|
||||
<td class="l2 m">{{ M06.url_code }}</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2" class="l2 p">{{ P04.url|safe }}</td>
|
||||
<td rowspan="2" class="l2 p">{{ P04.url }}</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td class="l2 m">{{ M07.url_code|safe }}</td>
|
||||
<td class="l2 m">{{ M09.url_code|safe }}</td>
|
||||
<td class="l2 m">{{ M07.url_code }}</td>
|
||||
<td class="l2 m">{{ M09.url_code }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td class="l2 m">{{ M08.url_code|safe }}</td
|
||||
<td class="l2 m">{{ M08.url_code }}</td
|
||||
><td> </td>
|
||||
</tr>
|
||||
|
||||
<!-- Ligne 3 -->
|
||||
<tr>
|
||||
<td rowspan="2" class="l3 d">{{ D3.url|safe }}</td>
|
||||
<td class="l3 p">{{ P05.url|safe }}</td>
|
||||
<td rowspan="2" class="l3 d">{{ D3.url }}</td>
|
||||
<td class="l3 p">{{ P05.url }}</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td colspan="2" class="l3 m">{{ M10.url_code|safe }}</td>
|
||||
<td class="l3 m">{{ M12.url_code|safe }}</td>
|
||||
<td colspan="2" class="l3 m">{{ M10.url_code }}</td>
|
||||
<td class="l3 m">{{ M12.url_code }}</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="l3 p">{{ P06.url|safe }}</td>
|
||||
<td class="l3 p">{{ P06.url }}</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td colspan="2" class="l3 m">{{ M11.url_code|safe }}</td>
|
||||
<td colspan="2" class="l3 m">{{ M11.url_code }}</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<!-- Ligne 4 -->
|
||||
<tr>
|
||||
<td class="l4 d">{{ D4.url|safe }}</td>
|
||||
<td class="l4 p">{{ P07.url|safe }}</td>
|
||||
<td class="l4 d">{{ D4.url }}</td>
|
||||
<td class="l4 p">{{ P07.url }}</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td class="l4 m">{{ M13.url_code|safe }}</td>
|
||||
<td class="l4 m">{{ M13.url_code }}</td>
|
||||
<td> </td>
|
||||
<td class="l4 m">{{ M14.url_code|safe }}</td>
|
||||
<td class="l4 m">{{ M14.url_code }}</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
||||
<!-- Ligne 5 -->
|
||||
<tr>
|
||||
<td class="l5 d">{{ D5.url|safe }}</td>
|
||||
<td class="l5 p">{{ P08.url|safe }}</td>
|
||||
<td colspan="6" class="l5 m">{{ M15.url_code|safe }}</td>
|
||||
<td class="l5 d">{{ D5.url }}</td>
|
||||
<td class="l5 p">{{ P08.url }}</td>
|
||||
<td colspan="6" class="l5 m">{{ M15.url_code }}</td>
|
||||
</tr>
|
||||
|
||||
<!-- Ligne 6 -->
|
||||
<tr>
|
||||
<td class="l6 d">{{ D6.url|safe }}</td>
|
||||
<td class="l6 p">{{ P09.url|safe }}</td>
|
||||
<td colspan="2" class="l6 m">{{ M16_1a.url_code|safe }} / {{ M16_1b.url_code|safe }} / {{ M16_1c.url_code|safe }} / {{ M16_1d.url_code|safe }} / {{ M16_1e.url_code|safe }}</td>
|
||||
<td colspan="2" class="l6 m">{{ M16_2a.url_code|safe }} / {{ M16_2b.url_code|safe }} </td>
|
||||
<td colspan="2" class="l6 m">{{ M16_3a.url_code|safe }} / {{ M16_3b.url_code|safe }} / {{ M16_3c.url_code|safe }}</td>
|
||||
<td class="l6 d">{{ D6.url }}</td>
|
||||
<td class="l6 p">{{ P09.url }}</td>
|
||||
<td colspan="2" class="l6 m">{{ M16_1a.url_code }} / {{ M16_1b.url_code }} / {{ M16_1c.url_code }} / {{ M16_1d.url_code }} / {{ M16_1e.url_code }}</td>
|
||||
<td colspan="2" class="l6 m">{{ M16_2a.url_code }} / {{ M16_2b.url_code }} </td>
|
||||
<td colspan="2" class="l6 m">{{ M16_3a.url_code }} / {{ M16_3b.url_code }} / {{ M16_3c.url_code }}</td>
|
||||
</tr>
|
||||
<!-- Ligne 7 -->
|
||||
<tr>
|
||||
<td class="l7 d">{{ D7.url|safe }}</td>
|
||||
<td class="l7 p">{{ P10.url|safe} }</td>
|
||||
<td colspan="2" class="l7 m">{{ M17_1.url_code|safe }}</td>
|
||||
<td colspan="2" class="l7 m">{{ M17_2.url_code|safe }}</td>
|
||||
<td colspan="2" class="l7 m">{{ M17_3.url_code|safe }}</td>
|
||||
<td class="l7 d">{{ D7.url }}</td>
|
||||
<td class="l7 p">{{ P10.url }}</td>
|
||||
<td colspan="2" class="l7 m">{{ M17_1.url_code }}</td>
|
||||
<td colspan="2" class="l7 m">{{ M17_2.url_code }}</td>
|
||||
<td colspan="2" class="l7 m">{{ M17_3.url_code }}</td>
|
||||
</tr>
|
||||
|
||||
<!-- Ligne 8 -->
|
||||
<tr>
|
||||
<td class="l8 d">{{ D8.url|safe }}</td>
|
||||
<td class="l8 p">{{ P11.url|safe }}</td>
|
||||
<td colspan="6" class="l8 m">{{ MACC.url_code|safe }}</td>
|
||||
<td class="l8 d">{{ D8.url }}</td>
|
||||
<td class="l8 p">{{ P11.url }}</td>
|
||||
<td colspan="6" class="l8 m">{{ MACC.url_code }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<table>
|
||||
<tr>
|
||||
<th width="100px">Domaine</th>
|
||||
<td>{{ object.processus.domaine.url|safe }}</td>
|
||||
<td>{{ object.processus.domaine.url }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Processus</th>
|
||||
<td>{{ object.processus.url|safe }}</td>
|
||||
<td>{{ object.processus.url }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Situation emblématique</th>
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<th>Domaine</th>
|
||||
<td>{{ object.domaine.url|safe }}</td>
|
||||
<td>{{ object.domaine.url }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Responsable</th>
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
<th>Modules concernés</th>
|
||||
<td>
|
||||
{% for m in object.module_set.all %}
|
||||
{{ m.url|safe }}<br>
|
||||
{{ m.url }}<br>
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue