-# -*- coding: utf-8 -*-
-#
# This file is part of FNP-Redakcja, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
from django.contrib.sites.models import Site
from django.db import models
from django.template.loader import render_to_string
+from django.urls import reverse
from django.utils.translation import ugettext_lazy as _
from catalogue.helpers import cached_in_field
from catalogue.models import Project
title = models.CharField(_('title'), max_length=255, blank=True)
slug = models.SlugField(_('slug'), unique=True)
public = models.BooleanField(_('public'), default=True, db_index=True)
- project = models.ForeignKey(Project, null=True, blank=True)
+ project = models.ForeignKey(Project, models.SET_NULL, null=True, blank=True)
# cache
_new_publishable = models.NullBooleanField(editable=False)
# Representing
# ============
- def __unicode__(self):
+ def __str__(self):
return self.title
- @models.permalink
def get_absolute_url(self):
- return ("catalogue_image", [self.slug])
+ return reverse("catalogue_image", args=[self.slug])
def correct_about(self):
return ["http://%s%s" % (
picture = WLPicture.from_bytes(
picture_xml.encode('utf-8'),
image_store=SelfImageStore)
- except ParseError, e:
+ except ParseError as e:
raise AssertionError(_('Invalid XML') + ': ' + str(e))
except NoDublinCore:
raise AssertionError(_('No Dublin Core found.'))
- except ValidationError, e:
+ except ValidationError as e:
raise AssertionError(_('Invalid Dublin Core') + ': ' + str(e))
valid_about = self.correct_about()
def publishable_error(self):
try:
return self.assert_publishable()
- except AssertionError, e:
+ except AssertionError as e:
return e
else:
return None
def accessible(self, request):
- return self.public or request.user.is_authenticated()
+ return self.public or request.user.is_authenticated
def is_new_publishable(self):
change = self.publishable()