Skip to content

Commit

Permalink
Fix #3609 : mise a jour de la page de contact (#3613)
Browse files Browse the repository at this point in the history
  • Loading branch information
gustavi authored and GerardPaligot committed Jun 17, 2016
1 parent bfa2d76 commit 0040f30
Show file tree
Hide file tree
Showing 7 changed files with 147 additions and 68 deletions.
85 changes: 34 additions & 51 deletions templates/pages/contact.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
{% extends "pages/base.html" %}


{% load email_obfuscator %}
{% load emarkdown %}
{% load i18n %}
{% load set %}



{% block title %}
{% trans "Contact" %}
{% endblock %}
Expand All @@ -24,57 +26,38 @@ <h1>{% trans "Contact" %}</h1>


{% block content %}
{% set app.site.litteral_name as site_name %}
<h3>{% trans "L'équipe de communication" %}</h3>
<p>
{% blocktrans with email_contact=app.site.email_contact|obfuscate_mailto_top_subject:"Contact communication" %}
Vous pouvez à tout moment joindre l'équipe de communication de {{ site_name }} par courriel via {{ email_contact }}.
{% endblocktrans %}
</p>
{% if app.site.association %}
<h3>{% trans "L'association" %}</h3>
{% for contact_group in groups %}
<h3>{{ contact_group.name }}</h3>
{% if contact_group.description %}
<p>{{ contact_group.description|emarkdown }}</p>
{% endif %}
{% if contact_group.email %}
<p>
{% blocktrans with group_name=contact_group.name|lower group_email=contact_group.email|obfuscate_mailto_top_subject:"Contact" %}
Vous pouvez joindre {{ group_name }} par courriel via {{ group_email }}.
{% endblocktrans %}
</p>
{% endif %}
{% if contact_group.person_in_charge %}
<p>{% trans "La personne responsable du groupe est" %} : {% include "misc/member_item.part.html" with avatar=True member=contact_group.person_in_charge %}.</p>
{% endif %}
{% with users=contact_group.group.user_set.all %}
{% if users %}
<p>{% trans "Les membres sont les suivants" %} :</p>
<div class="authors">
<ul>
{% for member in users %}
<li>{% include "misc/member_item.part.html" with avatar=True %}</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% endwith %}
{% empty %}
<p>
{% blocktrans with email_association=app.site.association.email|obfuscate_mailto_top_subject:"Contact association" %}
Vous pouvez joindre l'association par courriel via {{ email_association }}.
{% blocktrans with email_contact=app.site.email_contact|obfuscate_mailto_top_subject:"Contact" %}
Vous pouvez nous joindre par courriel via {{ email_contact }}.
{% endblocktrans %}
</p>
{% endif %}

<h3>{% trans "Le staff" %}</h3>
<p>
{% blocktrans %}
Le staff est constitué de certains membres du site dont le but est de contrôler le contenu publié sur {{ site_name }}. Ils sont en charge de la modération des messages sur les forums et commentaires, ainsi que de la validation et publication d'articles et/ou de tutoriels de {{ site_name }}.
Les membres faisant partie du Staff sont les suivants :
{% endblocktrans %}
</p>
<div class="authors">
<ul>
{% if staffs %}
{% for member in staffs %}
<li>{% include "misc/member_item.part.html" with avatar=True %}</li>
{% endfor %}
{% else %}
{% trans "Il n'y a pas de membre dans ce groupe." %}
{% endif %}
</ul>
</div>

<h3>{% trans "L'équipe technique" %}</h3>
<p>
{% blocktrans with repository=app.site.repository %}
L'équipe technique est constituée de certains membres du site dont le but est d'une part de s'assurer que le site reste toujours disponible en ligne, et d'autre part de corriger les bogues rencontrés sur le site ainsi que d'ajouter de nouvelles fonctionnalités.
Des administrateurs systèmes, jusqu'aux designeurs, en passant par les développeurs back-end et intégrateurs front-end, ils s'occupent aussi de la maintenance du <a href="{{ repository }}">dépôt officiel du projet</a>. Les membres faisant partie de l'équipe technique sont les suivants :
{% endblocktrans %}
</p>
<div class="authors">
<ul>
{% if devs %}
{% for member in devs %}
<li>{% include "misc/member_item.part.html" with avatar=True %}</li>
{% endfor %}
{% else %}
{% trans "Il n'y a pas de membre dans ce groupe." %}
{% endif %}
</ul>
</div>
{% endfor %}
{% endblock %}
39 changes: 39 additions & 0 deletions update.md
Original file line number Diff line number Diff line change
Expand Up @@ -584,6 +584,45 @@ Lancez la commande `python manage.py delete_useless_notif` pour supprimer toutes
Lancez la commande `python manage.py migrate_email_subscription` pour migrer tous les sujets suivis par e-mail vers
les nouveaux modèles de souscriptions.

Actions à faire pour mettre en prod la version 19
=================================================

Page de contact
---------------

**À faire après la mise en production par une personne ayant les droits admin**.

Il faut ajouter les différents groupes de la page de contact via l'administration Django. Les informations pour les créer sont ci dessous : :

```
L'équipe de communication
Email : [email protected]
Description :
Responsable : ShigeruM
groupe : Communication
L'association
Email : [email protected]
Description :
Responsable : Kje
groupe : bureau (à créer) ou CA (j'ai pas l'info au moment de la PR, voir avec Kje)
Le staff
Email :
Description : Le staff est constitué de certains membres du site dont le but est de contrôler le contenu publié sur Zeste de Savoir. Ils sont en charge de la modération des messages sur les forums et commentaires, ainsi que de la validation et publication d'articles et/ou de tutoriels de Zeste de Savoir.
Responsable : Thunderseb
groupe : staffs
L'équipe technique
Email :
Description : L'équipe technique est constituée de certains membres du site dont le but est d'une part de s'assurer que le site reste toujours disponible en ligne, et d'autre part de corriger les bogues rencontrés sur le site ainsi que d'ajouter de nouvelles fonctionnalités. Des administrateurs systèmes, jusqu'aux designeurs, en passant par les développeurs back-end et intégrateurs front-end, ils s'occupent aussi de la maintenance du dépôt officiel du projet.
Responsable : Andr0
groupe : devs
```

Ces descriptions peuvent être modifiées via l'administration Django après la mise en production.

---

**Notes auxquelles penser lors de l'édition de ce fichier (à laisser en bas) :**
Expand Down
6 changes: 6 additions & 0 deletions zds/pages/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from django.contrib import admin

from zds.pages.models import GroupContact


admin.site.register(GroupContact)
32 changes: 32 additions & 0 deletions zds/pages/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import migrations, models
from django.conf import settings


class Migration(migrations.Migration):

dependencies = [
('auth', '0006_require_contenttypes_0002'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

operations = [
migrations.CreateModel(
name='GroupContact',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(unique=True, max_length=32, verbose_name=b'Nom (ex: Le staff)')),
('description', models.TextField(null=True, verbose_name=b'Description (en markdown)', blank=True)),
('email', models.EmailField(max_length=254, null=True, verbose_name=b'Adresse mail du groupe', blank=True)),
('position', models.PositiveSmallIntegerField(unique=True, verbose_name=b'Position dans la page')),
('group', models.OneToOneField(verbose_name=b"Groupe d'utilisateur", to='auth.Group')),
('person_in_charge', models.ForeignKey(verbose_name=b'Responsable', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
],
options={
'verbose_name': 'Groupe de la page de contact',
'verbose_name_plural': 'Groupes de la page de contact',
},
),
]
24 changes: 23 additions & 1 deletion zds/pages/models.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
# coding: utf-8

# This file is necessary for tests but is unused.
from django.contrib.auth.models import Group, User
from django.db import models
from django.utils.translation import ugettext_lazy as _


class GroupContact(models.Model):
"""
Groups displayed in contact page and their informations.
"""

class Meta:
verbose_name = _('Groupe de la page de contact')
verbose_name_plural = _('Groupes de la page de contact')

group = models.OneToOneField(Group, verbose_name=_('Groupe d\'utilisateur'))
name = models.CharField(_('Nom (ex: Le staff)'), max_length=32, unique=True)
description = models.TextField(_('Description (en markdown)'), blank=True, null=True)
email = models.EmailField(_('Adresse mail du groupe'), blank=True, null=True)
person_in_charge = models.ForeignKey(User, verbose_name=_('Responsable'), blank=True, null=True)
position = models.PositiveSmallIntegerField(_('Position dans la page'), unique=True)

def __unicode__(self):
return self.name
5 changes: 2 additions & 3 deletions zds/pages/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@

from django.conf.urls import url

from zds.pages.views import about, association, contact, eula, alerts, cookies, index, AssocSubscribeView

from zds.pages.views import about, association, eula, alerts, cookies, index, AssocSubscribeView, ContactView

urlpatterns = [
# single pages
url(r'^apropos/$', about, name='pages-about'),
url(r'^association/$', association, name='pages-association'),
url(r'^contact/$', contact, name='pages-contact'),
url(r'^contact/$', ContactView.as_view(), name='pages-contact'),
url(r'^cgu/$', eula, name='pages-eula'),
url(r'^alertes/$', alerts, name='pages-alerts'),
url(r'^cookies/$', cookies, name='pages-cookies'),
Expand Down
24 changes: 11 additions & 13 deletions zds/pages/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,21 @@

from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import Group, User
from django.contrib.auth.models import User
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse
from django.shortcuts import render, get_object_or_404
from django.template.loader import render_to_string
from django.utils.decorators import method_decorator
from django.utils.translation import ugettext_lazy as _
from django.views.generic import ListView
from django.views.generic.edit import FormView

from zds.featured.models import FeaturedResource, FeaturedMessage
from zds.forum.models import Forum, Topic
from zds.member.decorator import can_write_and_read_now
from zds.pages.forms import AssocSubscribeForm
from zds.pages.models import GroupContact
from zds.settings import BASE_DIR, ZDS_APP
from zds.tutorialv2.models.models_database import PublishableContent, PublishedContent
from zds.utils.forums import create_topic
Expand Down Expand Up @@ -110,18 +112,14 @@ def association(request):
return render(request, 'pages/association.html')


def contact(request):
"""Display contact page."""
staffs = User.objects.filter(
groups__in=Group.objects.filter(
name__contains='staff')).all()
devs = User.objects.filter(
groups__in=Group.objects.filter(
name__contains='dev')).all()
return render(request, 'pages/contact.html', {
'staffs': staffs,
'devs': devs
})
class ContactView(ListView):
"""
Display contact page.
"""
model = GroupContact
queryset = GroupContact.objects.order_by('position').prefetch_related('group')
template_name = 'pages/contact.html'
context_object_name = 'groups'


def eula(request):
Expand Down

0 comments on commit 0040f30

Please sign in to comment.