from django.contrib.auth.decorators import login_required
from django.db.models import Q
from django.views.generic.base import TemplateView
+from django.views.generic.detail import DetailView
from django.views.generic.edit import UpdateView
from django.views.generic.list import ListView
from django.core.urlresolvers import reverse_lazy
+from django.core.exceptions import PermissionDenied
from .models import User
model = User
fields = ['phone', 'mobile', 'share_contact_details']
success_url = reverse_lazy('profile-view')
+ template_name = 'aa/profile_form.html'
def get_object(self):
return self.request.user
members_list_view = login_required(MembersListView.as_view())
+
+
+class MemberView(DetailView):
+ model = User
+
+
+member_view = login_required(MemberView.as_view())
+
+
+class MemberEditView(UpdateView):
+ model = User
+ fields = ['email', 'phone', 'mobile']
+
+ def get_object(self):
+ if not self.request.user.is_staff:
+ raise PermissionDenied()
+ return super().get_object()
+
+ def get_success_url(self):
+ return reverse_lazy('member-view', kwargs={'pk': self.get_object().id})
+
+
+member_edit = login_required(MemberEditView.as_view())
div#content div.section > h3 {
background: linear-gradient(to right, #386ede 30%, #00d6eb 100%);
color: white;
+ margin-bottom: 0;
}
div#content div.wiki-section h3 {
padding: 0.6rem;
}
}
+
+div.section > div > *:first-child {
+ margin-top: 0;
+}
--- /dev/null
+{% extends "base.html" %}
+
+{% block content %}
+<form method="post">
+{% csrf_token %}
+{{ form.as_p }}
+
+<div class="buttons">
+<button>Enregistrer</button>
+<a class="cancel" href="../..">Annuler</a>
+</div>
+</form>
+{% endblock %}
--- /dev/null
+{% extends "base.html" %}
+
+{% block appbar %}
+<h2>{{ user }}</h2>
+{% endblock %}
+
+{% block content %}
+<div class="section">
+ <h3>Informations</h3>
+ <div>
+ {% if user.active_emissions %}
+ <p>{{ user.active_emissions|join:", " }}</p>
+ {% endif %}
+ {% if user.is_ca %}<p>Membre du CA.</p>{% endif %}
+ {% if user.is_cp %}<p>Membre du CP.</p>{% endif %}
+ {% if request.user.is_staff or user.share_contact_details %}
+ <ul class="contact-details">
+ <li>Email : {{ user.email }}</li>
+ <li>Téléphone : {{ user.mobile|default_if_none:"" }} {% if user.phone %}— {{ user.phone }} (fixe){% endif %}</li>
+ </ul>
+ {% endif %}
+ {% if request.user.is_staff %}
+ <a class="button" data-popup href="{% url 'member-edit' pk=user.id %}">Modifier</a>
+ {% endif %}
+ </div>
+</div>
+{% endblock %}
<div class="buttons">
<button>Enregistrer</button>
-<a class="cancel" href="../..">Annuler</a>
+<a class="cancel" href="{% url 'member-view' pk=object.id %}">Annuler</a>
</div>
</form>
{% endblock %}
<table class="main">
{% for user in object_list %}
<tr>
- <td>{{ user }}</td>
+ <td><a href="{% url 'member-view' pk=user.id %}">{{ user }}</a></td>
<td>{% if user.is_ca %}CA{% endif %}
{% if user.is_cp %}CP{% endif %}</td>
<td>{{ user.active_emissions|join:", " }}</td>
url(r'^combok/episodes/', panikombo.views.episodes),
url(r'^members/$', aa_views.members_list_view, name='members-list-view'),
+ url(r'^members/(?P<pk>\d+)/$', aa_views.member_view, name='member-view'),
+ url(r'^members/(?P<pk>\d+)/edit/$', aa_views.member_edit, name='member-edit'),
url(r'^profile/$', aa_views.profile_view, name='profile-view'),
url(r'^profile/edit/$', aa_views.profile_contact_edit, name='profile-contact-edit'),