summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 5b4620254..949120383 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -3057,6 +3057,27 @@ class Person(Address, Merge, OwnPerms, ValueGetter, MainItem):
profile.save()
return profile
+ @property
+ def groups_display(self):
+ groups = Group.objects.filter(profile_types__user_profiles__person=self)
+ groups = set(groups.values_list("name", flat=True))
+ permissions = {}
+ for group in groups:
+ if ":" not in group:
+ permissions[group] = []
+ continue
+ group_part = group.split(":")
+ item, permission = group_part[0].strip(), ":".join(group_part[1:]).strip()
+ item_parts = item.split(" ")
+ if item_parts[-1].startswith(str(_("attached"))):
+ item = " ".join(item_parts[:-1])
+ permission = permission + " " + item_parts[-1]
+ if item not in permissions:
+ permissions[item] = []
+ permissions[item].append(permission)
+ for item in sorted(permissions.keys()):
+ yield item, " ; ".join(sorted(permissions[item]))
+
def get_short_html_items(self):
items = super(Person, self).get_short_html_items()
if items or not self.attached_to: