Merge index views

This commit is contained in:
Alexandre Iooss 2019-08-10 08:04:46 +02:00
parent be96a61ff2
commit aca1d2def6
No known key found for this signature in database
GPG Key ID: 6C79278F3FCDCC02
9 changed files with 189 additions and 108 deletions

View File

@ -9,7 +9,7 @@ Elle permet de gérer les medias, bd, jeux, emprunts, ainsi que les adhérents d
## Licence
Ce projet est sous la licence GNU public license v2.0.
Ce projet est sous la licence GNU public license v3.0.
## Développement

29
med/admin.py Normal file
View File

@ -0,0 +1,29 @@
# -*- mode: python; coding: utf-8 -*-
# Copyright (C) 2017-2019 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
from django.contrib.admin import AdminSite
from django.utils.translation import gettext_lazy as _
from django.views.decorators.cache import never_cache
from media.models import Emprunt
class DatabaseAdmin(AdminSite):
index_title = _('Welcome to the Mediatek database')
@never_cache
def index(self, request, extra_context=None):
"""
Add borrowed item to admin index
"""
response = super().index(request, extra_context)
# User is always authenticated
user_borrowed = Emprunt.objects.filter(user=request.user)
response.context_data["borrowed_items"] = user_borrowed
return response
admin_site = DatabaseAdmin()

View File

@ -3,11 +3,11 @@
# SPDX-License-Identifier: GPL-3.0-or-later
from django.conf.urls import include, url
from django.contrib import admin
from django.contrib.auth.views import password_reset
from django.views.generic import RedirectView
from media.views import index
from .admin import admin_site
urlpatterns = [
url(r'^$', index, name='index'),
@ -24,6 +24,6 @@ urlpatterns = [
url(r'^accounts/', include('django.contrib.auth.urls')),
url(r'^accounts/profile/',
RedirectView.as_view(pattern_name='index')),
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', admin.site.urls),
url(r'^database/doc/', include('django.contrib.admindocs.urls')),
url(r'^database/', admin_site.urls),
]

View File

@ -2,9 +2,9 @@
# Copyright (C) 2017-2019 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
from django.contrib import admin
from reversion.admin import VersionAdmin
from med.admin import admin_site
from .models import Auteur, Emprunt, Jeu, Media
@ -29,7 +29,7 @@ class JeuAdmin(VersionAdmin):
'nombre_joueurs_max', 'comment')
admin.site.register(Auteur, AuteurAdmin)
admin.site.register(Media, MediaAdmin)
admin.site.register(Emprunt, EmpruntAdmin)
admin.site.register(Jeu, JeuAdmin)
admin_site.register(Auteur, AuteurAdmin)
admin_site.register(Media, MediaAdmin)
admin_site.register(Emprunt, EmpruntAdmin)
admin_site.register(Jeu, JeuAdmin)

View File

@ -1,81 +0,0 @@
{% extends "admin/base_site.html" %}
{% comment %}
SPDX-License-Identifier: GPL-3.0-or-later
{% endcomment %}
{% load i18n static %}
{% block title %}Base de donnée de la Mediatek{% endblock %}
{% block extrastyle %}
{{ block.super }}
<link rel="stylesheet" type="text/css" href="{% static "admin/css/dashboard.css" %}"/>
{% endblock %}
{% block coltype %}colMS{% endblock %}
{% block bodyclass %}{{ block.super }} dashboard{% endblock %}
{% block breadcrumbs %}{% endblock %}
{% block content %}
<div id="content-main">
<h1>Bienvenue sur la base de données de la Mediatek.</h1>
<h1>Welcome to procrastination heaven !</h1>
<p>
Le site va subir progressivement des mises à jour pendant ces vacances.
Si vous rencontrez des instabilités,
veuillez nous faire remonter les problèmes <a href="mailto:a@crans.org,club-med@crans.org">au webmaster</a>.
</p>
<img src="{% static "images/splash.png" %}" class="poulpy" alt="Poulpy">
</div>
{% endblock %}
{% block sidebar %}
<div id="content-related">
<div class="module" id="recent-actions-module">
{% if user.is_authenticated %}
<h2>{{ user.first_name }} {{ user.last_name }}</h2>
<h3>
{% trans 'My profile' %}
<small><a class="changelink" href="{% url 'users:edit-info' %}">
{% trans 'Edit' %}
</a></small>
</h3>
<ul>
<li><strong>{% trans 'username' %}</strong> : {{ user.username }}</li>
<li><strong>{% trans 'email' %}</strong> : {{ user.email }}</li>
<li><strong>{% trans 'comment' %}</strong> : {{ user.comment }}</li>
<li><strong>{% trans 'date joined' %}</strong> : {{ user.date_joined }}</li>
<li><strong>{% trans 'last login' %}</strong> : {{ user.last_login }}</li>
<li><strong>{% trans 'address' %}</strong> : {{ user.address }}</li>
<li><strong>{% trans 'phone number' %}</strong> : {{ user.telephone }}</li>
<li><strong>{% trans 'groups' %}</strong> : {% for g in user.groups.all %}{{ g.name }} {% endfor %}</li>
<li><strong>{% trans 'maximum borrowed' %}</strong> : {{ user.maxemprunt }}</li>
<li>
<strong>{% trans 'membership for current year' %}</strong> :
{% if user.is_adherent %}
<span style="color:green">{% trans 'yes' %}</span>
{% else %}
<span style="color:red">{% trans 'no' %}</span>
{% endif %}
</li>
</ul>
<h3>{% trans 'Current borrowed items' %}</h3>
{% if borrowed_items %}
<ul>
{% for emprunt in borrowed_items %}
<li>{{ emprunt.media }} ({% trans 'since' %} {{ emprunt.date_emprunt }})</li>
{% endfor %}
</ul>
{% else %}
<p>{% trans 'No current borrowed items.' %}</p>
{% endif %}
{% else %}
<p>{% trans 'You are not logged in.' %}</p>
{% endif %}
</div>
</div>
{% endblock %}

View File

@ -8,6 +8,7 @@ from django.db import transaction
from django.shortcuts import redirect, render
from django.template.context_processors import csrf
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from reversion import revisions as reversion
from users.models import User
@ -70,13 +71,11 @@ def retour_emprunt(request, empruntid):
def index(request):
"""
Home page with user's borrowed items
Home page which redirect to admin when logged in
"""
if request.user.is_authenticated:
borrowed_items = Emprunt.objects.filter(user=request.user)
return redirect('admin:index')
else:
borrowed_items = []
return render(request, 'media/index.html', {
'borrowed_items': borrowed_items,
})
return render(request, 'admin/index.html', {
'title': _('Welcome to the Mediatek database'),
})

View File

@ -25,10 +25,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% endif %}
{% endblock %}
{% block userlinks %}
{% if user.is_authenticated %}
{% if available_apps %}
{# When in admin site, list all admin pages and documentation #}
<span class="dropdown">
{% if available_apps %}
{# When in admin site, list all admin pages and documentation #}
<span class="dropdown">
<a href="{% url 'admin:index' %}">{% trans 'Explore database' %}</a>
<span class="dropdown-content">
{% for app in available_apps %}
@ -47,10 +46,11 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% endif %}
</span>
</span> /
{% elif user.is_staff %}
{# When not in admin site, but user is staff then add a link #}
<a href="{% url 'admin:index' %}">{% trans 'Explore database' %}</a> /
{% endif %}
{% else %}
{# When not in admin site, but user is staff then add a link #}
<a href="{% url 'admin:index' %}">{% trans 'Explore database' %}</a> /
{% endif %}
{% if user.is_authenticated %}
<a href="{% url 'logout' %}">{% trans 'Log out' %}</a>
{% else %}
<a href="{% url 'login' %}">{% trans 'Log in' %}</a>

View File

@ -0,0 +1,133 @@
{% extends "admin/index.html" %}
{% comment %}
SPDX-License-Identifier: GPL-3.0-or-later
{% endcomment %}
{% load i18n static %}
{% block content %}
<div id="content-main">
<h2>Welcome to procrastination haven !</h2>
<p>
Le site va subir progressivement des mises à jour pendant ces vacances.
Si vous rencontrez des instabilités,
veuillez nous faire remonter les problèmes <a href="mailto:a@crans.org,club-med@crans.org">au webmaster</a>.
</p>
{% if app_list %}
{% for app in app_list %}
<div class="app-{{ app.app_label }} module">
<table>
<caption>
<a href="{{ app.app_url }}" class="section"
title="{% blocktrans with name=app.name %}Models in the {{ name }} application{% endblocktrans %}">{{ app.name }}</a>
</caption>
{% for model in app.models %}
<tr class="model-{{ model.object_name|lower }}">
{% if model.admin_url %}
<th scope="row"><a href="{{ model.admin_url }}">{{ model.name }}</a></th>
{% else %}
<th scope="row">{{ model.name }}</th>
{% endif %}
{% if model.add_url %}
<td><a href="{{ model.add_url }}" class="addlink">{% trans 'Add' %}</a></td>
{% else %}
<td>&nbsp;</td>
{% endif %}
{% if model.admin_url %}
<td><a href="{{ model.admin_url }}" class="changelink">{% trans 'Change' %}</a></td>
{% else %}
<td>&nbsp;</td>
{% endif %}
</tr>
{% endfor %}
</table>
</div>
{% endfor %}
{% endif %}
<img src="{% static "images/splash.png" %}" class="poulpy" alt="Poulpy">
</div>
{% endblock %}
{% block sidebar %}
<div id="content-related">
<div class="module" id="recent-actions-module">
{% if user.is_authenticated %}
<h2>{{ user.first_name }} {{ user.last_name }}</h2>
<h3>
{% trans 'My profile' %}
<small><a class="changelink" href="{% url 'users:edit-info' %}">
{% trans 'Edit' %}
</a></small>
</h3>
<ul>
<li><strong>{% trans 'username' %}</strong> : {{ user.username }}</li>
<li><strong>{% trans 'email' %}</strong> : {{ user.email }}</li>
<li><strong>{% trans 'comment' %}</strong> : {{ user.comment }}</li>
<li><strong>{% trans 'date joined' %}</strong> : {{ user.date_joined }}</li>
<li><strong>{% trans 'last login' %}</strong> : {{ user.last_login }}</li>
<li><strong>{% trans 'address' %}</strong> : {{ user.address }}</li>
<li><strong>{% trans 'phone number' %}</strong> : {{ user.telephone }}</li>
<li><strong>{% trans 'groups' %}</strong> : {% for g in user.groups.all %}{{ g.name }} {% endfor %}
</li>
<li><strong>{% trans 'maximum borrowed' %}</strong> : {{ user.maxemprunt }}</li>
<li>
<strong>{% trans 'membership for current year' %}</strong> :
{% if user.is_adherent %}
<span style="color:green">{% trans 'yes' %}</span>
{% else %}
<span style="color:red">{% trans 'no' %}</span>
{% endif %}
</li>
</ul>
<h3>{% trans 'Current borrowed items' %}</h3>
{% if borrowed_items %}
<ul>
{% for emprunt in borrowed_items %}
<li>{{ emprunt.media }} ({% trans 'since' %} {{ emprunt.date_emprunt }})</li>
{% endfor %}
</ul>
{% else %}
<p>{% trans 'No current borrowed items.' %}</p>
{% endif %}
<h3>{% trans 'My actions' %}</h3>
{% load log %}
{% get_admin_log 10 as admin_log for_user user %}
{% if not admin_log %}
<p>{% trans 'None available' %}</p>
{% else %}
<ul class="actionlist">
{% for entry in admin_log %}
<li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">
{% if entry.is_deletion or not entry.get_admin_url %}
{{ entry.object_repr }}
{% else %}
<a href="{{ entry.get_admin_url }}">{{ entry.object_repr }}</a>
{% endif %}
<br/>
{% if entry.content_type %}
<span class="mini quiet">{% filter capfirst %}
{{ entry.content_type }}{% endfilter %}</span>
{% else %}
<span class="mini quiet">{% trans 'Unknown content' %}</span>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{% else %}
<p>{% trans 'You are not logged in.' %}</p>
{% endif %}
</div>
</div>
{% endblock %}

View File

@ -13,6 +13,7 @@ from reversion.admin import VersionAdmin
from .forms import UserCreationAdminForm
from .models import Adhesion, Clef, User
from med.admin import admin_site
class ClefAdmin(VersionAdmin):
@ -122,6 +123,6 @@ class UserAdmin(VersionAdmin, BaseUserAdmin):
actions_btn.allow_tags = True
admin.site.register(User, UserAdmin)
admin.site.register(Adhesion, AdhesionAdmin)
admin.site.register(Clef, ClefAdmin)
admin_site.register(User, UserAdmin)
admin_site.register(Adhesion, AdhesionAdmin)
admin_site.register(Clef, ClefAdmin)