Allow librarian to specify common supplies in the DB
This commit is contained in:
parent
523dff135b
commit
cb5837a0cf
7 changed files with 91 additions and 15 deletions
|
@ -2,7 +2,7 @@ from django.contrib import admin, messages
|
|||
from import_export import resources
|
||||
from import_export.admin import ExportMixin
|
||||
|
||||
from manuels.models import Teacher, Book, Level, Editor, SuppliesRequirement
|
||||
from manuels.models import Teacher, Book, Level, Editor, SuppliesRequirement, CommonSupply
|
||||
|
||||
|
||||
class TeacherResource(resources.ModelResource):
|
||||
|
@ -75,6 +75,12 @@ class EditorAdmin(admin.ModelAdmin):
|
|||
pass
|
||||
|
||||
|
||||
@admin.register(CommonSupply)
|
||||
class CommonSupplyAdmin(admin.ModelAdmin):
|
||||
list_display = ['id', 'name', 'order']
|
||||
list_display_links = ['id', 'name']
|
||||
|
||||
|
||||
class SuppliesResource(resources.ModelResource):
|
||||
class Meta:
|
||||
model = SuppliesRequirement
|
||||
|
|
26
manuels/migrations/0034_commonsupply.py
Normal file
26
manuels/migrations/0034_commonsupply.py
Normal file
|
@ -0,0 +1,26 @@
|
|||
# Generated by Django 2.2.1 on 2019-06-15 09:05
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('manuels', '0033_auto_20190406_1919'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='CommonSupply',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='créé le')),
|
||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='mis à jour le')),
|
||||
('name', models.CharField(max_length=200, verbose_name='nom')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'fourniture commune',
|
||||
'verbose_name_plural': 'fournitures communes',
|
||||
},
|
||||
),
|
||||
]
|
19
manuels/migrations/0035_commonsupply_order.py
Normal file
19
manuels/migrations/0035_commonsupply_order.py
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Generated by Django 2.2.1 on 2019-06-15 09:13
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('manuels', '0034_commonsupply'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='commonsupply',
|
||||
name='order',
|
||||
field=models.IntegerField(default=0, verbose_name='ordre'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
17
manuels/migrations/0036_auto_20190615_1114.py
Normal file
17
manuels/migrations/0036_auto_20190615_1114.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Generated by Django 2.2.1 on 2019-06-15 09:14
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('manuels', '0035_commonsupply_order'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='commonsupply',
|
||||
options={'ordering': ('order',), 'verbose_name': 'fourniture commune', 'verbose_name_plural': 'fournitures communes'},
|
||||
),
|
||||
]
|
|
@ -233,3 +233,16 @@ class SuppliesRequirement(BaseModel):
|
|||
|
||||
def __str__(self):
|
||||
return f'{self.supplies} pour {self.level} ({self.teacher})'
|
||||
|
||||
|
||||
class CommonSupply(BaseModel):
|
||||
class Meta:
|
||||
verbose_name = 'fourniture commune'
|
||||
verbose_name_plural = 'fournitures communes'
|
||||
ordering = ('order',)
|
||||
|
||||
name = models.CharField('nom', max_length=200)
|
||||
order = models.IntegerField('ordre')
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
|
|
@ -4,18 +4,8 @@
|
|||
<strong>Merci de ne pas re-saisir les fournitures communes à tous les élèves, à savoir :</strong>
|
||||
</p>
|
||||
<ul class="mb-0">
|
||||
<li>cahier de textes ou agenda</li>
|
||||
<li>trousse complète (y compris gomme, taille-crayons, blanc correcteur, bâtons de colle, règle 30 cm.,
|
||||
surligneurs
|
||||
4 couleurs…)
|
||||
</li>
|
||||
<li>1 paire de ciseaux</li>
|
||||
<li>clé(s) USB</li>
|
||||
<li>1 agrafeuse</li>
|
||||
<li>crayons de couleurs (minimum 12)</li>
|
||||
<li>système de reliure (baguettes sans perçage, transparents, papier épais, …) pour les éventuels dossiers
|
||||
de
|
||||
fin d’année
|
||||
</li>
|
||||
{% for supply in common_supplies %}
|
||||
<li>{{ supply.name }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
|
@ -11,7 +11,7 @@ from django.views.decorators.cache import cache_page
|
|||
from django.views.generic import CreateView, UpdateView, DeleteView, TemplateView
|
||||
|
||||
from manuels.forms import AddBookForm, AddSuppliesForm, EditBookForm, EditSuppliesForm
|
||||
from manuels.models import Teacher, Book, SuppliesRequirement
|
||||
from manuels.models import Teacher, Book, SuppliesRequirement, CommonSupply
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
@ -156,6 +156,11 @@ class AddSuppliesView(SuppliesView, AddItemView):
|
|||
message_template = 'manuels/supplies_message.html'
|
||||
template_name = 'manuels/add_supplies.html'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['common_supplies'] = CommonSupply.objects.all()
|
||||
return context
|
||||
|
||||
def form_valid(self, form: AddBookForm):
|
||||
for level in form.cleaned_data['levels']:
|
||||
supplies = SuppliesRequirement.objects.create(
|
||||
|
|
Loading…
Reference in a new issue