mirror of
https://gitlab.crans.org/mediatek/med.git
synced 2024-12-24 03:02:24 +00:00
Merge index views
This commit is contained in:
parent
be96a61ff2
commit
aca1d2def6
@ -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
29
med/admin.py
Normal 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()
|
@ -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),
|
||||
]
|
||||
|
@ -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)
|
||||
|
@ -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 %}
|
@ -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'),
|
||||
})
|
||||
|
@ -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>
|
||||
|
133
theme/templates/admin/index.html
Normal file
133
theme/templates/admin/index.html
Normal 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> </td>
|
||||
{% endif %}
|
||||
|
||||
{% if model.admin_url %}
|
||||
<td><a href="{{ model.admin_url }}" class="changelink">{% trans 'Change' %}</a></td>
|
||||
{% else %}
|
||||
<td> </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 %}
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user