diff --git a/jdav_web/material/admin.py b/jdav_web/material/admin.py index 31198a1..f324c77 100644 --- a/jdav_web/material/admin.py +++ b/jdav_web/material/admin.py @@ -4,10 +4,14 @@ from django.contrib.admin import SimpleListFilter from django.db import models from django import forms -from .models import MaterialPart, Ownership +from .models import MaterialPart, Ownership, MaterialCategory from easy_select2 import apply_select2 +class MaterialCategoryAdmin(admin.ModelAdmin): + fields = ['name'] + + # Register your models here. class OwnershipInline(admin.TabularInline): """ @@ -45,10 +49,14 @@ class MaterialAdmin(admin.ModelAdmin): 'ownership_overview', 'buy_date', 'lifetime', 'not_too_old', 'admin_thumbnail') inlines = [OwnershipInline] - list_filter = (NotTooOldFilter,) + list_filter = (NotTooOldFilter, 'material_cat') + formfield_overrides = { + models.ManyToManyField: {'widget': forms.CheckboxSelectMultiple} + } class Media: css = {'all': ('admin/css/tabular_hide_original.css',)} +admin.site.register(MaterialCategory, MaterialCategoryAdmin) admin.site.register(MaterialPart, MaterialAdmin) diff --git a/jdav_web/material/locale/de/LC_MESSAGES/django.po b/jdav_web/material/locale/de/LC_MESSAGES/django.po index 211e548..24af840 100644 --- a/jdav_web/material/locale/de/LC_MESSAGES/django.po +++ b/jdav_web/material/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-07-05 19:07+0200\n" +"POT-Creation-Date: 2017-10-11 13:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,15 +18,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: admin.py:25 +#: admin.py:29 msgid "Age" msgstr "Alter" -#: admin.py:30 +#: admin.py:34 msgid "Not too old" msgstr "Nicht zu alt" -#: admin.py:31 +#: admin.py:35 msgid "Too old" msgstr "Zu alt" @@ -34,66 +34,82 @@ msgstr "Zu alt" msgid "material" msgstr "Material" -#: models.py:17 +#: models.py:15 +msgid "Name" +msgstr "Name" + +#: models.py:16 +msgid "Description" +msgstr "Beschreibung" + +#: models.py:22 models.py:39 +msgid "Material category" +msgstr "Materialart" + +#: models.py:23 +msgid "Material categories" +msgstr "Materialarten" + +#: models.py:32 msgid "name" msgstr "Name" -#: models.py:18 +#: models.py:33 msgid "description" msgstr "Beschreibung" -#: models.py:19 +#: models.py:34 msgid "quantity" msgstr "Anzahl" -#: models.py:20 +#: models.py:35 msgid "purchase date" msgstr "Kaufdatum" -#: models.py:21 +#: models.py:36 msgid "lifetime (years)" msgstr "Lebenszeit (Jahre)" -#: models.py:22 +#: models.py:37 msgid "photo" msgstr "Bild" -#: models.py:33 +#: models.py:50 msgid "Quantity" msgstr "Anzahl" -#: models.py:40 +#: models.py:57 msgid "Thumbnail" msgstr "Bild" -#: models.py:49 +#: models.py:66 msgid "Owners" msgstr "Verantwortliche" -#: models.py:59 +#: models.py:76 msgid "Not too old?" msgstr "Nicht zu alt?" -#: models.py:62 +#: models.py:79 msgid "material part" msgstr "Materialteil" -#: models.py:63 +#: models.py:80 msgid "material parts" msgstr "Materialteile" -#: models.py:69 +#: models.py:86 msgid "owner" msgstr "Besitzer" -#: models.py:70 +#: models.py:87 msgid "count" msgstr "Anzahl" -#: models.py:77 +#: models.py:94 msgid "ownership" msgstr "Besitzer" -#: models.py:78 +#: models.py:95 msgid "ownerships" msgstr "Verantwortliche" diff --git a/jdav_web/material/models.py b/jdav_web/material/models.py index d610775..f6253e5 100644 --- a/jdav_web/material/models.py +++ b/jdav_web/material/models.py @@ -8,6 +8,20 @@ from django.utils.translation import ugettext_lazy as _ MAX_TIME_MATERIAL = 5 +class MaterialCategory(models.Model): + """ + Describes one kind of material + """ + name = models.CharField(max_length=40, verbose_name=_('Name')) + + def __str__(self): + return self.name + + class Meta: + verbose_name = _('Material category') + verbose_name_plural = _('Material categories') + + # Create your models here. class MaterialPart(models.Model): """ @@ -20,6 +34,8 @@ class MaterialPart(models.Model): buy_date = models.DateField(_('purchase date'), editable=True) lifetime = models.DecimalField(_('lifetime (years)'), decimal_places=0, max_digits=3) photo = models.ImageField(_('photo'), upload_to='images', blank=True) + material_cat = models.ManyToManyField(MaterialCategory, default=None, + verbose_name=_('Material category')) def __str__(self): """String representation"""