Code layout change.
[wolnelektury.git] / src / libraries / models.py
diff --git a/src/libraries/models.py b/src/libraries/models.py
new file mode 100644 (file)
index 0000000..c83afbb
--- /dev/null
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-\r
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.\r
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.\r
+#\r
+from django.db import models\r
+from django.utils.translation import ugettext_lazy as _\r
+\r
+\r
+class Catalog(models.Model):\r
+    """Represents a dictionary of libraries"""\r
+\r
+    name = models.CharField(_('name'), max_length=120, null=False)\r
+    slug = models.SlugField(_('slug'), max_length=120, unique=True, db_index=True)\r
+\r
+    class Meta:\r
+        verbose_name = _('catalog')\r
+        verbose_name_plural = _('catalogs')\r
+\r
+    def __unicode__(self):\r
+        return self.name\r
+\r
+    @models.permalink\r
+    def get_absolute_url(self):\r
+        return ('libraries_catalog_view', [self.slug])\r
+\r
+\r
+class Library(models.Model):\r
+    """Represent a single library in the libraries dictionary"""\r
+\r
+    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)\r
+    url = models.CharField(_('url'), max_length=120, blank=True)
+    description = models.TextField(_('description'), blank=True)\r
+\r
+    class Meta:\r
+        verbose_name = _('library')\r
+        verbose_name_plural = _('libraries')\r
+\r
+    def __unicode__(self):\r
+        return self.name\r
+\r
+    @models.permalink\r
+    def get_absolute_url(self):\r
+        return ('libraries_library_view', [self.catalog.slug, self.slug])\r