Merge branch 'Kerl/unernestaparis'

This commit is contained in:
Martin Pépin 2018-09-02 23:27:05 +02:00
commit 19c51c6a3a
7 changed files with 79 additions and 51 deletions

View file

@ -1,3 +1,5 @@
image: "python:3.5"
services: services:
- postgres:latest - postgres:latest
- redis:latest - redis:latest
@ -34,6 +36,7 @@ before_script:
# Remove the old test database if it has not been done yet # Remove the old test database if it has not been done yet
- psql --username=$POSTGRES_USER --host=$DBHOST -c "DROP DATABASE IF EXISTS test_$POSTGRES_DB" - psql --username=$POSTGRES_USER --host=$DBHOST -c "DROP DATABASE IF EXISTS test_$POSTGRES_DB"
- pip install --upgrade --cache-dir vendor/pip -t vendor/python -r requirements.txt - pip install --upgrade --cache-dir vendor/pip -t vendor/python -r requirements.txt
- python --version
test: test:
stage: test stage: test

View file

@ -170,25 +170,22 @@ class EventStatusFilterForm(forms.Form):
yield ("has_paid", None, value) yield ("has_paid", None, value)
class UserProfileForm(forms.ModelForm): class UserForm(forms.ModelForm):
first_name = forms.CharField(label=_('Prénom'), max_length=30) class Meta:
last_name = forms.CharField(label=_('Nom'), max_length=30) model = User
fields = ["first_name", "last_name", "email"]
def __init__(self, *args, **kw):
super().__init__(*args, **kw)
self.fields['first_name'].initial = self.instance.user.first_name
self.fields['last_name'].initial = self.instance.user.last_name
def save(self, *args, **kw):
super().save(*args, **kw)
self.instance.user.first_name = self.cleaned_data.get('first_name')
self.instance.user.last_name = self.cleaned_data.get('last_name')
self.instance.user.save()
class ProfileForm(forms.ModelForm):
class Meta: class Meta:
model = CofProfile model = CofProfile
fields = ["first_name", "last_name", "phone", "mailing_cof", fields = [
"mailing_bda", "mailing_bda_revente"] "phone",
"mailing_cof",
"mailing_bda",
"mailing_bda_revente",
"mailing_unernestaparis"
]
class RegistrationUserForm(forms.ModelForm): class RegistrationUserForm(forms.ModelForm):
@ -232,6 +229,7 @@ class RegistrationProfileForm(forms.ModelForm):
self.fields['mailing_cof'].initial = True self.fields['mailing_cof'].initial = True
self.fields['mailing_bda'].initial = True self.fields['mailing_bda'].initial = True
self.fields['mailing_bda_revente'].initial = True self.fields['mailing_bda_revente'].initial = True
self.fields['mailing_unernestaparis'].initial = True
self.fields.keyOrder = [ self.fields.keyOrder = [
'login_clipper', 'login_clipper',
@ -243,6 +241,7 @@ class RegistrationProfileForm(forms.ModelForm):
'mailing_cof', 'mailing_cof',
'mailing_bda', 'mailing_bda',
'mailing_bda_revente', 'mailing_bda_revente',
"mailing_unernestaparis",
'comments' 'comments'
] ]
@ -250,7 +249,9 @@ class RegistrationProfileForm(forms.ModelForm):
model = CofProfile model = CofProfile
fields = ("login_clipper", "phone", "occupation", fields = ("login_clipper", "phone", "occupation",
"departement", "is_cof", "type_cotiz", "mailing_cof", "departement", "is_cof", "type_cotiz", "mailing_cof",
"mailing_bda", "mailing_bda_revente", "comments") "mailing_bda", "mailing_bda_revente",
"mailing_unernestaparis", "comments")
STATUS_CHOICES = (('no', 'Non'), STATUS_CHOICES = (('no', 'Non'),
('wait', 'Oui mais attente paiement'), ('wait', 'Oui mais attente paiement'),

View file

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.15 on 2018-09-02 21:13
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('gestioncof', '0013_pei'),
]
operations = [
migrations.AddField(
model_name='cofprofile',
name='mailing_unernestaparis',
field=models.BooleanField(default=False, verbose_name='Recevoir les mails unErnestAParis'),
),
]

View file

@ -72,6 +72,7 @@ class CofProfile(models.Model):
TYPE_COTIZ_CHOICES)) TYPE_COTIZ_CHOICES))
mailing_cof = models.BooleanField("Recevoir les mails COF", default=False) mailing_cof = models.BooleanField("Recevoir les mails COF", default=False)
mailing_bda = models.BooleanField("Recevoir les mails BdA", default=False) mailing_bda = models.BooleanField("Recevoir les mails BdA", default=False)
mailing_unernestaparis = models.BooleanField("Recevoir les mails unErnestAParis", default=False)
mailing_bda_revente = models.BooleanField( mailing_bda_revente = models.BooleanField(
"Recevoir les mails de revente de places BdA", default=False) "Recevoir les mails de revente de places BdA", default=False)
comments = models.TextField( comments = models.TextField(

View file

@ -5,23 +5,20 @@
{% block realcontent %} {% block realcontent %}
<h2>Modifier mon profil</h2> <h2>Modifier mon profil</h2>
<form id="profile form-horizontal" method="post" action="{% url 'profile' %}"> <form id="profile form-horizontal" method="post" action="">
<div class="row" style="margin: 0 15%;"> <div class="row" style="margin: 0 15%;">
{% csrf_token %} {% csrf_token %}
<fieldset"center-block"> {{ user_form | bootstrap }}
{% for field in form %} {{ profile_form | bootstrap }}
{{ field | bootstrap }}
{% endfor %}
</fieldset>
</div> </div>
{% if user.profile.comments %} {% if user.profile.comments %}
<div class="row" style="margin: 0 15%;"> <div class="row" style="margin: 0 15%;">
<h4>Commentaires</h4> <h4>Commentaires</h4>
<p> <p>{{ user.profile.comments }}</p>
{{ user.profile.comments }}
</p>
</div> </div>
{% endif %} {% endif %}
<div class="form-actions"> <div class="form-actions">
<input type="submit" class="btn btn-primary pull-right" value="Enregistrer" /> <input type="submit" class="btn btn-primary pull-right" value="Enregistrer" />
</div> </div>

View file

@ -46,9 +46,9 @@ class ProfileViewTests(ViewTestCaseMixin, TestCase):
u = self.users['member'] u = self.users['member']
r = self.client.post(self.url, { r = self.client.post(self.url, {
'first_name': 'First', 'u-first_name': 'First',
'last_name': 'Last', 'u-last_name': 'Last',
'phone': '', 'p-phone': '',
# 'mailing_cof': '1', # 'mailing_cof': '1',
# 'mailing_bda': '1', # 'mailing_bda': '1',
# 'mailing_bda_revente': '1', # 'mailing_bda_revente': '1',

View file

@ -32,7 +32,8 @@ from gestioncof.models import EventCommentField, EventCommentValue, \
from gestioncof.models import CofProfile, Club from gestioncof.models import CofProfile, Club
from gestioncof.decorators import buro_required, cof_required from gestioncof.decorators import buro_required, cof_required
from gestioncof.forms import ( from gestioncof.forms import (
UserProfileForm, EventStatusFilterForm, SurveyForm, SurveyStatusFilterForm, UserForm, ProfileForm,
EventStatusFilterForm, SurveyForm, SurveyStatusFilterForm,
RegistrationUserForm, RegistrationProfileForm, EventForm, CalendarForm, RegistrationUserForm, RegistrationProfileForm, EventForm, CalendarForm,
EventFormset, RegistrationPassUserForm, ClubsForm, GestioncofConfigForm EventFormset, RegistrationPassUserForm, ClubsForm, GestioncofConfigForm
) )
@ -334,15 +335,20 @@ def survey_status(request, survey_id):
@cof_required @cof_required
def profile(request): def profile(request):
user = request.user
data = request.POST if request.method == "POST" else None
user_form = UserForm(data=data, instance=user, prefix="u")
profile_form = ProfileForm(data=data, instance=user.profile, prefix="p")
if request.method == "POST": if request.method == "POST":
form = UserProfileForm(request.POST, instance=request.user.profile) if user_form.is_valid() and profile_form.is_valid():
if form.is_valid(): user_form.save()
form.save() profile_form.save()
messages.success(request, messages.success(
"Votre profil a été mis à jour avec succès !") request,
else: _("Votre profil a été mis à jour avec succès !")
form = UserProfileForm(instance=request.user.profile) )
return render(request, "gestioncof/profile.html", {"form": form}) context = {"user_form": user_form, "profile_form": profile_form}
return render(request, "gestioncof/profile.html", context)
def registration_set_ro_fields(user_form, profile_form): def registration_set_ro_fields(user_form, profile_form):