X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/6280673f35e13e75e81c5b7821bd2a44a1831eab..357027375ff8867f42ca34bcbfb5a78b5b185fc3:/src/libraries/models.py diff --git a/src/libraries/models.py b/src/libraries/models.py new file mode 100644 index 000000000..c83afbbba --- /dev/null +++ b/src/libraries/models.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# +from django.db import models +from django.utils.translation import ugettext_lazy as _ + + +class Catalog(models.Model): + """Represents a dictionary of libraries""" + + name = models.CharField(_('name'), max_length=120, null=False) + slug = models.SlugField(_('slug'), max_length=120, unique=True, db_index=True) + + class Meta: + verbose_name = _('catalog') + verbose_name_plural = _('catalogs') + + def __unicode__(self): + return self.name + + @models.permalink + def get_absolute_url(self): + return ('libraries_catalog_view', [self.slug]) + + +class Library(models.Model): + """Represent a single library in the libraries dictionary""" + + name = models.CharField(_('name'), max_length=120, blank=True) + slug = models.SlugField(_('slug'), max_length=120, unique=True, db_index=True, null=True) + catalog = models.ForeignKey(Catalog, null=False, related_name='libraries', on_delete=models.PROTECT) + url = models.CharField(_('url'), max_length=120, blank=True) + description = models.TextField(_('description'), blank=True) + + class Meta: + verbose_name = _('library') + verbose_name_plural = _('libraries') + + def __unicode__(self): + return self.name + + @models.permalink + def get_absolute_url(self): + return ('libraries_library_view', [self.catalog.slug, self.slug])