Browse Source

Add a publicsite app

Containing unrestricted access pages
Jocelyn Delande 9 years ago
parent
commit
46575f8aa6

+ 0 - 4
costs/urls.py

@@ -1,12 +1,8 @@
 from django.conf.urls import url
-from django.views.generic import RedirectView
 
 from . import views
 
 urlpatterns = [
-    url(r'^$',
-        RedirectView.as_view(pattern_name='list-documents', permanent=False),
-        name='index'),
     url(r'^documents/(?P<pk>\d+)',
         views.detail_document,
         name='detail-document'),

+ 0 - 4
costs/views.py

@@ -5,10 +5,6 @@ from django.db.models import Sum
 from .models import Document, Service, ServiceUse, CostUse, GoodUse
 
 
-def index(request):
-    return render(request, 'costs/index.html')
-
-
 def list_documents(request):
     breadcrumbs = (
         ('Documents', reverse('list-documents')),

+ 0 - 0
publicsite/__init__.py


+ 5 - 0
publicsite/apps.py

@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class PublicsiteConfig(AppConfig):
+    name = 'publicsite'

+ 71 - 0
publicsite/templates/publicsite/public_document_detail.html

@@ -0,0 +1,71 @@
+{% extends "costs/base.html" %}
+{% load costs %}
+
+{% block content %}
+<div class="ui two column stackable grid">
+  <section class="column">
+    <h2>Coût de revient par service</h2>
+    <p><em>Relevé issu de « {{ document }} »</em></p>
+    <table class="ui celled table">
+      <thead>
+        <tr><th>Service</th><th>Prix de revient mensuel</th></tr>
+      </thead>
+      <tbody>
+    {% for service in document.service_set.all %}
+        <tr>
+          <td>{{ service.name }}</td>
+          <td>{{ service.get_prices.unit_consolidated_cost|price }}</td>
+        </tr>
+    {% empty %}
+        <tr><td>Pas de service pour l'instant.</td></tr>
+    {% endfor %}
+      </tbody>
+    </table>
+    <a href="{% url "detail-document" pk=document.pk %}">Coûts détaillés</a>
+(adhérents seulement).
+  </section>
+
+  <section class="column">
+<h2>Prix libre ?</h2>
+L'association {{ settings.ORGANIZATION_NAME }} pratique le <strong>prix libre</strong> pour une partie
+de ses services.
+    </p>
+    <p>
+Afin que tout un chacun puisse <strong>choisir son prix d'abonnement de manière
+éclairée</strong>, il est nécessaire de pratiquer une
+      <strong>transparence</strong> sur le coût réel des services, aussi, nous
+publions chaque mois une mesure du prix coûtant de nos services.
+    </p>
+    <p>
+      <em>Si les adhérents payent en moyenne le prix coûtant indiqué,
+l'association est pile à l'équilibre.</em>
+    <p>
+Le but n'est cependant pas que tout le monde paye le prix coûtant, mais plutôt que chacun
+contribue <strong>selon ses moyens financiers et sa volonté</strong> ; les personnes payant plus
+  finançant <strong>solidairement</strong> le service pour ceux qui payent
+moins.
+    </p>
+    <p>
+Il est à noter que <strong>l'association a besoin d'une marge</strong> pour se
+développer et parer aux imprévus.
+    </p>
+  </section>
+</div>
+{% endblock content %}
+
+{% block rail %}
+
+    <h2>Tous les relevés</h2>
+    <ul>
+    {% for doc in documents %}
+      <li>
+        <a href="{% url "public-detail-document" pk=doc.pk %}">
+      {% if doc == document %}<strong>{% endif %}
+        {{ doc }}
+      {% if doc == document %}</strong>{% endif %}
+          </a>
+      </li>
+    {% endfor %}
+    </ul>
+
+{% endblock rail %}

+ 3 - 0
publicsite/tests.py

@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.

+ 12 - 0
publicsite/urls.py

@@ -0,0 +1,12 @@
+from django.conf.urls import url
+
+from . import views
+
+urlpatterns = [
+    url(r'^$',
+        views.public_document_detail,
+        name='public-index'),
+    url(r'^report/(?P<pk>\d+)$',
+        views.public_document_detail,
+        name='public-detail-document'),
+]

+ 18 - 0
publicsite/views.py

@@ -0,0 +1,18 @@
+from django.shortcuts import get_object_or_404, render
+from costs.models import Document
+
+
+def public_document_detail(request, pk=None):
+    if pk is None:
+        doc = Document.objects.order_by('-date').first()
+    else:
+        doc = get_object_or_404(Document, pk=pk)
+
+    docs = Document.objects\
+                   .filter(type=Document.TYPE_FACT)\
+                   .order_by('-date')
+
+    return render(request, 'publicsite/public_document_detail.html', {
+        'document': doc,
+        'documents': docs,
+    })

+ 1 - 0
transparency/settings.py

@@ -35,6 +35,7 @@ INSTALLED_APPS = (
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'costs',
+    'publicsite',
     'django.contrib.admin.apps.SimpleAdminConfig',
 )
 

+ 3 - 1
transparency/urls.py

@@ -17,12 +17,14 @@ from django.conf.urls import include, url
 from django.contrib import admin
 from transparency.admin import admin_site
 import costs.urls
+import publicsite.urls
 from django.views.generic import RedirectView
 
 
 urlpatterns = [
     url(r'^admin/', include(admin_site.urls)),
     url(r'^costs/', include(costs.urls)),
+    url(r'public/', include(publicsite.urls)),
     url(r'^$', RedirectView.as_view(
-        pattern_name='index', permanent=False)),
+        pattern_name='public-index', permanent=False)),
 ]