Merge pull request #29 from ikame/master

Fix neighbors fetching in user stories
remotes/origin/enhancement/email-actions
Jesús Espino 2014-02-27 07:40:51 +01:00
commit 0585ce3162
2 changed files with 5 additions and 2 deletions

View File

@ -22,12 +22,14 @@ class NeighborsMixin:
"""
if queryset is None:
queryset = type(self).objects.get_queryset()
if not self._get_queryset_order_by(queryset):
queryset = queryset.order_by(*self._meta.ordering)
queryset = queryset.filter(~Q(id=self.id))
return self._get_previous_neighbor(queryset), self._get_next_neighbor(queryset)
def _get_queryset_order_by(self, queryset):
return queryset.query.order_by or [self._meta.pk.name]
return queryset.query.order_by or []
def _field(self, field):
return getattr(self, field.lstrip("-"))
@ -57,6 +59,7 @@ class NeighborsMixin:
def _get_next_neighbor(self, queryset):
conds = [{"{}__{}".format(*self._filter(field, "gt", "lt")): self._field(field)}
for field in self._get_queryset_order_by(queryset)]
try:
return queryset.filter(self._or(conds))[0]
except IndexError:

View File

@ -100,7 +100,7 @@ class UserStory(NeighborsMixin, WatchedMixin, BlockedMixin, models.Model):
class Meta:
verbose_name = "user story"
verbose_name_plural = "user stories"
ordering = ["project", "order", "ref"]
ordering = ["project", "order"]
unique_together = ("ref", "project")
permissions = (
("view_userstory", "Can view user story"),