Ajout des infos utiles dans les PartitionSet

- On utilise désormais un formulaire pour changer la categorie et
  let infos utiles d'une partition.
- Pas de CSS : à faire
This commit is contained in:
Martin Pépin 2016-06-22 15:33:48 +02:00
parent 78a473b468
commit 99a77851d1
6 changed files with 31 additions and 42 deletions

View file

@ -17,4 +17,10 @@ class Migration(migrations.Migration):
field=models.CharField(choices=[('active', 'Actif'), ('incoming', 'À venir'), ('old', 'Archive')], max_length=8, verbose_name='Types de partitions', default='incoming'), field=models.CharField(choices=[('active', 'Actif'), ('incoming', 'À venir'), ('old', 'Archive')], max_length=8, verbose_name='Types de partitions', default='incoming'),
preserve_default=True, preserve_default=True,
), ),
migrations.AddField(
model_name='partitionset',
name='infos',
field=models.TextField(null=True, verbose_name='Infos utiles'),
preserve_default=True,
),
] ]

View file

@ -26,6 +26,7 @@ class PartitionSet(models.Model):
auteur = models.CharField(max_length=100) auteur = models.CharField(max_length=100)
category = models.CharField('Types de partitions', max_length=8, category = models.CharField('Types de partitions', max_length=8,
choices=PARTITION_TYPES, default="incoming") choices=PARTITION_TYPES, default="incoming")
infos = models.TextField("Infos utiles", null=True)
def __str__(self): def __str__(self):
return("%s - %s [%s]" % (self.nom, self.auteur, return("%s - %s [%s]" % (self.nom, self.auteur,

View file

@ -10,7 +10,5 @@ urlpatterns = patterns('partitions.views',
url(r'^(?P<nom>[^/]+)/(?P<auteur>[^/]+)/(?P<file_name>[^/]+)/$', 'download'), url(r'^(?P<nom>[^/]+)/(?P<auteur>[^/]+)/(?P<file_name>[^/]+)/$', 'download'),
url(r'^(?P<nom>[^/]+)/(?P<auteur>[^/]+)/(?P<id>[^/]+)/delete/?$', 'delete'), url(r'^(?P<nom>[^/]+)/(?P<auteur>[^/]+)/(?P<id>[^/]+)/delete/?$', 'delete'),
url(r'^(?P<nom>[^/]+)/(?P<auteur>[^/]+)/(?P<id>[^/]+)/conf/?$', 'conf_delete'), url(r'^(?P<nom>[^/]+)/(?P<auteur>[^/]+)/(?P<id>[^/]+)/conf/?$', 'conf_delete'),
url(r'^(?P<nom>[^/]+)/(?P<auteur>[^/]+)/(?P<categorie>[a-z]+)/change-category/?$',
'change_category'),
url(r'^new/?$', 'ajouter_morceau'), url(r'^new/?$', 'ajouter_morceau'),
) )

View file

@ -2,6 +2,7 @@ from django.shortcuts import render, redirect, HttpResponse, render_to_response,
get_object_or_404 get_object_or_404
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.utils.encoding import smart_str from django.utils.encoding import smart_str
from django.forms.models import modelform_factory
import os import os
@ -131,23 +132,14 @@ def conf_delete_morc(request, nom, auteur):
@login_required @login_required
def listepart(request, nom, auteur): def listepart(request, nom, auteur):
p = PartitionSet.objects.get(nom=nom, auteur=auteur) p = PartitionSet.objects.get(nom=nom, auteur=auteur)
part = p.partition_set.all() part = p.partition_set.all()
return render(request, 'partitions/listepart.html', locals()) ChefEditForm = modelform_factory(PartitionSet, fields=("category", "infos"))
if request.method == "POST" and request.user.profile.is_chef:
@chef_required form = ChefEditForm(request.POST, instance=p)
def change_category(request, nom, auteur, categorie): if form.is_valid():
part_set = get_object_or_404(PartitionSet, nom=nom, auteur=auteur) form.save()
part = part_set.partition_set.all() else:
context = { form = ChefEditForm(instance=p)
'nom': nom, return render(request, 'partitions/listepart.html', locals())
'auteur': auteur,
'p': part_set,
'part': part,
}
if categorie in [id for (id, alias) in PARTITION_TYPES]:
part_set.category = categorie
part_set.save()
return render(request, 'partitions/listepart.html', context)

View file

@ -191,17 +191,6 @@ form p {
margin-bottom: 10px; margin-bottom: 10px;
} }
.hbuttonlist { #chef-edit-div {
text-align: center;
padding-left: 0;
}
.hbuttonlist li {
display: inline-block;
margin-left: 5px;
margin-right: 5px;
}
#category-change {
text-align: center; text-align: center;
} }

View file

@ -10,15 +10,18 @@
<p>{{ suppression }}</p> <p>{{ suppression }}</p>
{% endif %} {% endif %}
<div id="category-change"> {% if user.profile.is_chef %}
<h4>Changer de catégorie&#8239;?</h4> <form action="{% url "partitions.views.listepart" nom auteur %}" id="chef-edit-form" method="post">
<ul class="hbuttonlist"> {% csrf_token %}
<li><a href="{% url "partitions.views.change_category" nom auteur "active" %}">Actuel</a></li> {{ form.as_p }}
<li><a href="{% url "partitions.views.change_category" nom auteur "incoming" %}">À venir</a></li> <input type="submit" value="Enregister" />
<li><a href="{% url "partitions.views.change_category" nom auteur "old" %} ">Archives</a></li> </form>
</ul> {% else %}
</div> {% if p.infos %}
<h4>Infos utiles</h4>
<p>{{ p.infos }}</p>
{% endif %}
{% endif %}
<ul class="filelist"> <ul class="filelist">
{% for p in part %} {% for p in part %}