From bf1f09932a496842bb0ff654cec844191c72a7fb Mon Sep 17 00:00:00 2001 From: Jan Szejko Date: Mon, 16 Oct 2017 11:30:14 +0200 Subject: [PATCH] pep8 etc --- apps/catalogue/models/chunk.py | 9 ++-- apps/dvcs/models.py | 83 +++++++++++++++------------------- 2 files changed, 40 insertions(+), 52 deletions(-) diff --git a/apps/catalogue/models/chunk.py b/apps/catalogue/models/chunk.py index 171ba533..fc3a9eae 100755 --- a/apps/catalogue/models/chunk.py +++ b/apps/catalogue/models/chunk.py @@ -49,7 +49,7 @@ class Chunk(dvcs_models.Document): @models.permalink def get_absolute_url(self): - return ("wiki_editor", [self.book.slug, self.slug]) + return "wiki_editor", [self.book.slug, self.slug] def pretty_name(self, book_length=None): title = self.book.title @@ -59,7 +59,6 @@ class Chunk(dvcs_models.Document): title += " (%d/%d)" % (self.number, book_length) return title - # Creating and manipulation # ========================= @@ -71,7 +70,8 @@ class Chunk(dvcs_models.Document): while not new_chunk: new_slug = self.book.make_chunk_slug(slug) try: - new_chunk = self.book.chunk_set.create(number=self.number+1, + new_chunk = self.book.chunk_set.create( + number=self.number+1, slug=new_slug[:50], title=title[:255], **kwargs) except IntegrityError: pass @@ -84,7 +84,6 @@ class Chunk(dvcs_models.Document): else: return cls.objects.get(book__slug=book_slug, slug=chunk_slug) - # State & cache # ============= @@ -92,7 +91,7 @@ class Chunk(dvcs_models.Document): change = self.publishable() if not change: return False - return change.publish_log.exists() + return not change.publish_log.exists() def is_changed(self): if self.head is None: diff --git a/apps/dvcs/models.py b/apps/dvcs/models.py index e82ad193..24bdeb3a 100644 --- a/apps/dvcs/models.py +++ b/apps/dvcs/models.py @@ -1,9 +1,13 @@ +# -*- 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 datetime import datetime import os.path from django.contrib.auth.models import User from django.core.files.base import ContentFile -from django.core.files.storage import FileSystemStorage from django.db import models, transaction from django.db.models.base import ModelBase from django.utils.translation import string_concat, ugettext_lazy as _ @@ -17,8 +21,7 @@ from dvcs.storage import GzipFileSystemStorage class Tag(models.Model): """A tag (e.g. document stage) which can be applied to a Change.""" name = models.CharField(_('name'), max_length=64) - slug = models.SlugField(_('slug'), unique=True, max_length=64, - null=True, blank=True) + slug = models.SlugField(_('slug'), unique=True, max_length=64, null=True, blank=True) ordering = models.IntegerField(_('ordering')) _object_cache = {} @@ -59,6 +62,7 @@ models.signals.pre_save.connect(Tag.listener_changed, sender=Tag) def data_upload_to(instance, filename): return "%d/%d" % (instance.tree.pk, instance.pk) + class Change(models.Model): """ Single document change related to previous change. The "parent" @@ -68,29 +72,20 @@ class Change(models.Model): Data file contains a gzipped text of the document. """ author = models.ForeignKey(User, null=True, blank=True, verbose_name=_('author')) - author_name = models.CharField(_('author name'), max_length=128, - null=True, blank=True, - help_text=_("Used if author is not set.") - ) - author_email = models.CharField(_('author email'), max_length=128, - null=True, blank=True, - help_text=_("Used if author is not set.") - ) + author_name = models.CharField( + _('author name'), max_length=128, null=True, blank=True, help_text=_("Used if author is not set.")) + author_email = models.CharField( + _('author email'), max_length=128, null=True, blank=True, help_text=_("Used if author is not set.")) revision = models.IntegerField(_('revision'), db_index=True) - parent = models.ForeignKey('self', - null=True, blank=True, default=None, - verbose_name=_('parent'), - related_name="children") + parent = models.ForeignKey( + 'self', null=True, blank=True, default=None, verbose_name=_('parent'), related_name="children") - merge_parent = models.ForeignKey('self', - null=True, blank=True, default=None, - verbose_name=_('merge parent'), - related_name="merge_children") + merge_parent = models.ForeignKey( + 'self', null=True, blank=True, default=None, verbose_name=_('merge parent'), related_name="merge_children") description = models.TextField(_('description'), blank=True, default='') - created_at = models.DateTimeField(editable=False, db_index=True, - default=datetime.now) + created_at = models.DateTimeField(editable=False, db_index=True, default=datetime.now) publishable = models.BooleanField(_('publishable'), default=False) class Meta: @@ -113,7 +108,6 @@ class Change(models.Model): self.author_email ) - def save(self, *args, **kwargs): """ take the next available revision number if none yet @@ -171,10 +165,10 @@ def create_tag_model(model): class Meta(Tag.Meta): app_label = model._meta.app_label - verbose_name = string_concat(_("tag"), " ", _("for:"), " ", - model._meta.verbose_name) - verbose_name_plural = string_concat(_("tags"), " ", _("for:"), " ", - model._meta.verbose_name) + verbose_name = string_concat( + _("tag"), " ", _("for:"), " ", model._meta.verbose_name) + verbose_name_plural = string_concat( + _("tags"), " ", _("for:"), " ", model._meta.verbose_name) attrs = { '__module__': model.__module__, @@ -189,10 +183,10 @@ def create_change_model(model): class Meta(Change.Meta): app_label = model._meta.app_label - verbose_name = string_concat(_("change"), " ", _("for:"), " ", - model._meta.verbose_name) - verbose_name_plural = string_concat(_("changes"), " ", _("for:"), " ", - model._meta.verbose_name) + verbose_name = string_concat( + _("change"), " ", _("for:"), " ", model._meta.verbose_name) + verbose_name_plural = string_concat( + _("changes"), " ", _("for:"), " ", model._meta.verbose_name) attrs = { '__module__': model.__module__, @@ -205,7 +199,7 @@ def create_change_model(model): class DocumentMeta(ModelBase): - "Metaclass for Document models." + """Metaclass for Document models.""" def __new__(cls, name, bases, attrs): model = super(DocumentMeta, cls).__new__(cls, name, bases, attrs) @@ -218,13 +212,13 @@ class DocumentMeta(ModelBase): # create real Change model and `head' fk model.change_model = create_change_model(model) - models.ForeignKey(model.change_model, - null=True, blank=True, default=None, - verbose_name=_('head'), - help_text=_("This document's current head."), - editable=False).contribute_to_class(model, 'head') + models.ForeignKey( + model.change_model, null=True, blank=True, default=None, + verbose_name=_('head'), help_text=_("This document's current head."), + editable=False).contribute_to_class(model, 'head') - models.ForeignKey(User, null=True, blank=True, editable=False, + models.ForeignKey( + User, null=True, blank=True, editable=False, verbose_name=_('creator'), related_name="created_%s" % name.lower() ).contribute_to_class(model, 'creator') @@ -239,8 +233,7 @@ class Document(models.Model): # default repository path REPO_PATH = os.path.join(settings.MEDIA_ROOT, 'dvcs') - user = models.ForeignKey(User, null=True, blank=True, - verbose_name=_('user'), help_text=_('Work assignment.')) + user = models.ForeignKey(User, null=True, blank=True, verbose_name=_('user'), help_text=_('Work assignment.')) class Meta: abstract = True @@ -257,8 +250,7 @@ class Document(models.Model): change = self.change_set.get(pk=change) return change.materialize() - def commit(self, text, author=None, author_name=None, author_email=None, - publishable=False, **kwargs): + def commit(self, text, author=None, author_name=None, author_email=None, publishable=False, **kwargs): """Commits a new revision. This will automatically merge the commit into the main branch, @@ -286,12 +278,9 @@ class Document(models.Model): # set stage to next tag after the commited one self.stage = max(tags, key=lambda t: t.ordering).get_next() - change = self.change_set.create(author=author, - author_name=author_name, - author_email=author_email, - description=kwargs.get('description', ''), - publishable=publishable, - parent=parent) + change = self.change_set.create( + author=author, author_name=author_name, author_email=author_email, + description=kwargs.get('description', ''), publishable=publishable, parent=parent) change.tags = tags change.data.save('', ContentFile(text.encode('utf-8'))) -- 2.20.1