diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-04-03 18:25:55 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-04-03 18:25:55 +0200 |
commit | d38203a78cf15f4cee9c674fe9c73b1aee6f8ece (patch) | |
tree | b38b88c4eee417e5b650569a542689c1e00e4241 | |
parent | e889610ca5a4b7963f41b37dbb68ba477dbee884 (diff) | |
download | Ishtar-d38203a78cf15f4cee9c674fe9c73b1aee6f8ece.tar.bz2 Ishtar-d38203a78cf15f4cee9c674fe9c73b1aee6f8ece.zip |
Basket: distinct display - better item numbers
-rw-r--r-- | archaeological_finds/forms.py | 6 | ||||
-rw-r--r-- | archaeological_finds/models_finds.py | 1 | ||||
-rw-r--r-- | archaeological_finds/views.py | 5 | ||||
-rw-r--r-- | ishtar_common/models.py | 3 |
4 files changed, 9 insertions, 6 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index d5ce0e025..637e49ec3 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -684,7 +684,7 @@ class QAFindBasketForm(IshtarForm): if not self.user: return self.fields['basket'].choices = [ - (b.pk, unicode(b)) + (b.pk, u"{} ({})".format(b.label, b.items.count())) for b in models.FindBasket.objects.filter(user=self.user) ] @@ -1541,10 +1541,10 @@ class SelectFindBasketForm(IshtarForm): def get_basket_choices(self): return [('', u'--')] + [ - (str(b.pk), unicode(b)) + (str(b.pk), u"{} ({})".format(b.label, b.items.count())) for b in models.FindBasket.objects.filter( Q(user=self.user) | Q(shared_write_with=self.user) - ) + ).distinct() ] diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index a172ea1a3..15b6451d6 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -613,6 +613,7 @@ class FindBasket(Basket, MainItem): class Meta: verbose_name = _(u"Basket") + ordering = ('label', ) permissions = ( ("view_find", u"Can view all Finds"), ("view_own_find", u"Can view own Find"), diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index d4faff71a..e4f8ab66d 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -125,7 +125,7 @@ def show_find_extra(request, find): q = models.FindBasket.objects.filter(items__pk=find.pk).filter( Q(user=user) | Q(shared_with__pk=user.pk) | Q(shared_write_with__pk=user.pk) - ) + ).distinct() return {"baskets": [(basket.pk, basket.full_label) for basket in q.all()]} @@ -147,7 +147,8 @@ def autocomplete_findbasket(request, current_right=None): limit = 20 query = query & models.FindBasket.get_write_query_owns( request.user.ishtaruser) - items = models.FindBasket.objects.filter(query).order_by('label')[:limit] + items = models.FindBasket.objects.filter(query).distinct().order_by( + 'label')[:limit] data = json.dumps( [{'id': item.pk, 'value': u"{} - {}".format(item.label, item.user)[:60]} diff --git a/ishtar_common/models.py b/ishtar_common/models.py index c0243787b..f49bd9560 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -3691,6 +3691,7 @@ class Basket(FullSearch, OwnPerms): class Meta: abstract = True + ordering = ('label', ) unique_together = (('label', 'user'),) def __unicode__(self): @@ -3710,7 +3711,7 @@ class Basket(FullSearch, OwnPerms): @property def full_label(self): - return u"{} - {}".format(self.label, self.user) + return u"{} - {} ({})".format(self.label, self.user, self.items.count()) @classmethod def get_short_menu_class(cls, pk): |