mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-09 19:40:19 +00:00
Even better mailing
This commit is contained in:
30
rootplace/templates/rootplace/mailing_lists.jinja
Normal file
30
rootplace/templates/rootplace/mailing_lists.jinja
Normal file
@ -0,0 +1,30 @@
|
||||
{% extends "core/base.jinja" %}
|
||||
|
||||
{% block title %}
|
||||
{% trans %}Mailing lists administration{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>{% trans %}This page list all existing mailing lists{% endtrans %}</h1>
|
||||
{% if has_objects %}
|
||||
<table>
|
||||
<tr>
|
||||
<th>{% trans %}Email{% endtrans %}</th>
|
||||
<th>{% trans %}Club{%endtrans%}</th>
|
||||
</tr>
|
||||
{% for mailing in object_list %}
|
||||
<tr>
|
||||
<td>{{ mailing.email }}</td>
|
||||
<td>{{ mailing.club }} <a href="{{ url('club:mailing_delete', mailing_id=mailing.id) }}">{% trans %}Delete{% endtrans %}</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
{% else %}
|
||||
<p>{% trans %}No mailing existing{% endtrans %}</p>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
@ -28,4 +28,5 @@ from rootplace.views import *
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^merge$', MergeUsersView.as_view(), name='merge'),
|
||||
url(r'^mailings$', MailingListAdminView.as_view(), name='mailings')
|
||||
]
|
||||
|
@ -2,6 +2,7 @@
|
||||
#
|
||||
# Copyright 2016,2017
|
||||
# - Skia <skia@libskia.so>
|
||||
# - Sli <antoine@bartuccio.fr>
|
||||
#
|
||||
# Ce fichier fait partie du site de l'Association des Étudiants de l'UTBM,
|
||||
# http://ae.utbm.fr.
|
||||
@ -27,6 +28,7 @@ from django.utils.translation import ugettext as _
|
||||
from django.views.generic.edit import FormView
|
||||
from django.core.urlresolvers import reverse
|
||||
from django import forms
|
||||
from django.views.generic import ListView
|
||||
from django.core.exceptions import PermissionDenied
|
||||
|
||||
from ajax_select.fields import AutoCompleteSelectField
|
||||
@ -34,6 +36,8 @@ from ajax_select.fields import AutoCompleteSelectField
|
||||
from core.views import CanViewMixin
|
||||
from core.models import User
|
||||
from counter.models import Customer
|
||||
from club.models import Mailing
|
||||
|
||||
|
||||
def merge_users(u1, u2):
|
||||
u1.nick_name = u1.nick_name or u2.nick_name
|
||||
@ -86,10 +90,12 @@ def merge_users(u1, u2):
|
||||
u2.delete()
|
||||
return u1
|
||||
|
||||
|
||||
class MergeForm(forms.Form):
|
||||
user1 = AutoCompleteSelectField('users', label=_("User that will be kept"), help_text=None, required=True)
|
||||
user2 = AutoCompleteSelectField('users', label=_("User that will be deleted"), help_text=None, required=True)
|
||||
|
||||
|
||||
class MergeUsersView(FormView):
|
||||
template_name = "rootplace/merge.jinja"
|
||||
form_class = MergeForm
|
||||
@ -107,3 +113,17 @@ class MergeUsersView(FormView):
|
||||
def get_success_url(self):
|
||||
return reverse('core:user_profile', kwargs={'user_id': self.final_user.id})
|
||||
|
||||
|
||||
class MailingListAdminView(ListView):
|
||||
template_name = "rootplace/mailing_lists.jinja"
|
||||
model = Mailing
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
if not request.user.is_root:
|
||||
raise PermissionDenied
|
||||
return super(MailingListAdminView, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
kwargs = super(MailingListAdminView, self).get_context_data(**kwargs)
|
||||
kwargs['has_objects'] = len(kwargs['object_list']) > 0
|
||||
return kwargs
|
||||
|
Reference in New Issue
Block a user