modified website.decorators, webpage->app_config, created new configs

This commit is contained in:
Arthur Gerbaud
2016-11-19 21:46:40 +01:00
parent f4f366f514
commit 891ef9ef63
14 changed files with 148 additions and 136 deletions

View File

@@ -1,4 +1,3 @@
{% if user.is_superuser %}
{% load bootstrap3 %}
<li class="dropdown app-menu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
@@ -9,4 +8,3 @@
<li><a href="{% url 'admin:app_list' app_label='sujets' %}">
{% bootstrap_icon "wrench" %} Gérer les sujets</a></li>
</ul>
{% endif %}

View File

@@ -1,6 +1,6 @@
{% load bootstrap3 %}
<li class="app-menu">
<a href="{% url 'sujets:liste' %}">Liste des sujets
<a href="{% url 'suivi:liste' %}">Liste des sujets
<span class="pull-right">{% bootstrap_icon "list" %}</span>
</a>
</li>

View File

@@ -1,9 +1,9 @@
from django.conf.urls import url
from . import views
from sujets import views as sujets_views
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name="index"),
url(r'liste/$', views.SujetListView.as_view(), name="liste"),
url(r'(?P<pk>[0-9]+)/$', views.SuiviSujetView.as_view(), name="details"),
]

View File

@@ -9,15 +9,17 @@ from notes.forms import AutoNoteForm
# Create your views here.
from utilisateurs.models import Maraudeur
from website import decorators as website
webpage = website.webpage(
suivi = website.app_config(
name="suivi",
groups=[Maraudeur],
menu=["suivi/menu/sujets.html"],
admin_menu=["suivi/menu/admin_sujets.html"],
ajax=False,
app_users=[Maraudeur],
app_menu=["suivi/menu/sujets.html", "suivi/menu/admin_sujets.html"]
)
@webpage
@suivi
class IndexView(NoteFormMixin, generic.TemplateView):
class PageInfo:
title = "Suivi des bénéficiaires"
@@ -36,10 +38,33 @@ class IndexView(NoteFormMixin, generic.TemplateView):
#TemplateView
template_name = "suivi/index.html"
@suivi
class SujetListView(generic.ListView):
class PageInfo:
title = "Sujet - Liste des sujets"
header = "Liste des sujets"
#ListView
model = Sujet
template_name = "sujets/sujet_liste.html"
paginate_by = 30
def post(self, request, **kwargs):
from watson import search as watson
search_text = request.POST.get('q')
results = watson.filter(Sujet, search_text)
if results.count() == 1:
return redirect(results[0].get_absolute_url())
self.queryset = results
return self.get(request, **kwargs)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['query_text'] = self.request.POST.get('q', None)
return context
@webpage
# Import app_config from 'sujets' application, using
# its admin_menu option
from sujets.views import sujets
@sujets
class SuiviSujetView(NoteFormMixin, generic.DetailView):
class PageInfo:
title = "Sujet - {{sujet}}"
@@ -59,9 +84,6 @@ class SuiviSujetView(NoteFormMixin, generic.DetailView):
model = Sujet
template_name = "suivi/details.html"
context_object_name = "sujet"
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.insert_menu("sujets/menu_sujet.html")
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context['notes'] = self.object.notes.by_date(reverse=True)