fnp
/
redakcja.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
document stages on import,
[redakcja.git]
/
apps
/
dvcs
/
models.py
diff --git
a/apps/dvcs/models.py
b/apps/dvcs/models.py
index
6c5796a
..
f81f2ca
100644
(file)
--- a/
apps/dvcs/models.py
+++ b/
apps/dvcs/models.py
@@
-38,6
+38,16
@@
class Tag(models.Model):
def listener_changed(sender, instance, **kwargs):
sender._object_cache = {}
def listener_changed(sender, instance, **kwargs):
sender._object_cache = {}
+ def next(self):
+ """
+ Returns the next tag - stage to work on.
+ Returns None for the last stage.
+ """
+ try:
+ return Tag.objects.filter(ordering__gt=self.ordering)[0]
+ except IndexError:
+ return None
+
models.signals.pre_save.connect(Tag.listener_changed, sender=Tag)
models.signals.pre_save.connect(Tag.listener_changed, sender=Tag)
@@
-66,6
+76,7
@@
class Change(models.Model):
description = models.TextField(blank=True, default='')
created_at = models.DateTimeField(editable=False, db_index=True,
default=datetime.now)
description = models.TextField(blank=True, default='')
created_at = models.DateTimeField(editable=False, db_index=True,
default=datetime.now)
+ publishable = models.BooleanField(default=False)
tags = models.ManyToManyField(Tag)
tags = models.ManyToManyField(Tag)
@@
-167,10
+178,15
@@
class Document(models.Model):
"""
File in repository.
"""
"""
File in repository.
"""
- creator = models.ForeignKey(User, null=True, blank=True)
+ creator = models.ForeignKey(User, null=True, blank=True, editable=False,
+ related_name="created_documents")
head = models.ForeignKey(Change,
null=True, blank=True, default=None,
head = models.ForeignKey(Change,
null=True, blank=True, default=None,
- help_text=_("This document's current head."))
+ help_text=_("This document's current head."),
+ editable=False)
+
+ user = models.ForeignKey(User, null=True, blank=True)
+ stage = models.ForeignKey(Tag, null=True, blank=True)
def __unicode__(self):
return u"{0}, HEAD: {1}".format(self.id, self.head_id)
def __unicode__(self):
return u"{0}, HEAD: {1}".format(self.id, self.head_id)
@@
-211,6
+227,9
@@
class Document(models.Model):
author = kwargs.get('author', None)
author_desc = kwargs.get('author_desc', None)
tags = kwargs.get('tags', [])
author = kwargs.get('author', None)
author_desc = kwargs.get('author_desc', None)
tags = kwargs.get('tags', [])
+ if tags:
+ # set stage to next tag after the commited one
+ self.stage = max(tags, key=lambda t: t.ordering).next()
old_head = self.head
if parent != old_head:
old_head = self.head
if parent != old_head:
@@
-239,13
+258,13
@@
class Document(models.Model):
return rev if rev is not None else -1
def at_revision(self, rev):
return rev if rev is not None else -1
def at_revision(self, rev):
- if rev:
+ if rev
is not None
:
return self.change_set.get(revision=rev)
else:
return self.head
return self.change_set.get(revision=rev)
else:
return self.head
- def
last_tagged(self, tag
):
- changes =
tag.change_set.filter(tree=self
).order_by('-created_at')[:1]
+ def
publishable(self
):
+ changes =
self.change_set.filter(publishable=True
).order_by('-created_at')[:1]
if changes.count():
return changes[0]
else:
if changes.count():
return changes[0]
else: