diff --git a/manuels/admin.py b/manuels/admin.py index 0bdc621..ca23fb3 100644 --- a/manuels/admin.py +++ b/manuels/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin -from manuels.models import Teacher, Book, Level, Editor +from manuels.models import Teacher, Book, Level, Editor, SuppliesRequirement @admin.register(Teacher) @@ -35,3 +35,9 @@ class BookAdmin(admin.ModelAdmin): @admin.register(Editor) class EditorAdmin(admin.ModelAdmin): pass + + +@admin.register(SuppliesRequirement) +class SuppliesRequirementAdmin(admin.ModelAdmin): + list_display = ['teacher', 'level', 'supplies'] + readonly_fields = ['created_at', 'updated_at'] diff --git a/manuels/forms.py b/manuels/forms.py index 5d878a2..23e907c 100644 --- a/manuels/forms.py +++ b/manuels/forms.py @@ -1,6 +1,6 @@ from django import forms -from manuels.models import Book, Teacher +from manuels.models import Book, SuppliesRequirement class AddBookForm(forms.ModelForm): @@ -8,4 +8,12 @@ class AddBookForm(forms.ModelForm): model = Book fields = '__all__' - add_another = forms.BooleanField(label='Ajouter un autre livre', required=False) + add_another = forms.BooleanField(label='Ajouter un autre livre', required=False, initial=True) + + +class AddSuppliesForm(forms.ModelForm): + class Meta: + model = SuppliesRequirement + fields = '__all__' + + add_another = forms.BooleanField(label="Ajouter d'autres fournitures", required=False, initial=True) diff --git a/manuels/migrations/0005_suppliesrequirement.py b/manuels/migrations/0005_suppliesrequirement.py new file mode 100644 index 0000000..f604619 --- /dev/null +++ b/manuels/migrations/0005_suppliesrequirement.py @@ -0,0 +1,29 @@ +# Generated by Django 2.0.5 on 2018-05-22 07:34 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('manuels', '0004_auto_20180522_0148'), + ] + + operations = [ + migrations.CreateModel( + name='SuppliesRequirement', + 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')), + ('supplies', models.TextField(verbose_name='fournitures')), + ('level', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='manuels.Level', verbose_name='classe')), + ('teacher', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='manuels.Teacher', verbose_name='enseignant')), + ], + options={ + 'verbose_name': 'demande de fournitures', + 'verbose_name_plural': 'demandes de fournitures', + }, + ), + ] diff --git a/manuels/migrations/0006_auto_20180522_1009.py b/manuels/migrations/0006_auto_20180522_1009.py new file mode 100644 index 0000000..d9b79ae --- /dev/null +++ b/manuels/migrations/0006_auto_20180522_1009.py @@ -0,0 +1,18 @@ +# Generated by Django 2.0.5 on 2018-05-22 08:09 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('manuels', '0005_suppliesrequirement'), + ] + + operations = [ + migrations.AlterField( + model_name='book', + name='previously_acquired', + field=models.BooleanField(choices=[(True, 'Oui'), (False, 'Non')], default=False, verbose_name="manuel acquis précédemment par l'élève"), + ), + ] diff --git a/manuels/models.py b/manuels/models.py index ddf5846..537c929 100644 --- a/manuels/models.py +++ b/manuels/models.py @@ -80,10 +80,15 @@ class Book(BaseModel): isbn = models.CharField('ISBN/EAN', max_length=20, validators=[isbn_validator]) price = models.PositiveIntegerField('prix') YES_NO_CHOICE = ( - (True, 'Oui'), (False, 'Non'), + (True, 'Oui'), + ) + previously_acquired = models.BooleanField( + "manuel acquis précédemment par l'élève", + choices=YES_NO_CHOICE, + blank=False, + default=False, ) - previously_acquired = models.BooleanField("manuel acquis précédemment par l'élève", choices=YES_NO_CHOICE, blank=False) @property def previously_acquired_emoji(self): @@ -94,3 +99,16 @@ class Book(BaseModel): def __str__(self): return f'{self.title} ({self.authors}) - {self.isbn}' + + +class SuppliesRequirement(BaseModel): + class Meta: + verbose_name = 'demande de fournitures' + verbose_name_plural = 'demandes de fournitures' + + teacher = models.ForeignKey(verbose_name='enseignant', to=Teacher, on_delete=models.SET_NULL, null=True) + level = models.ForeignKey(verbose_name='classe', to=Level, on_delete=models.SET_NULL, null=True) + supplies = models.TextField('fournitures') + + def __str__(self): + return f'{self.supplies} pour {self.level} ({self.teacher})' diff --git a/manuels/templates/manuels/add_book.html b/manuels/templates/manuels/add_item.html similarity index 89% rename from manuels/templates/manuels/add_book.html rename to manuels/templates/manuels/add_item.html index bb7853f..c00113b 100644 --- a/manuels/templates/manuels/add_book.html +++ b/manuels/templates/manuels/add_item.html @@ -7,7 +7,7 @@