From 81bdaa1256aca3cf460dbebd92b4154aa082d2ab Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sun, 20 Feb 2022 16:50:20 +0100
Subject: [PATCH] Drop semantically wrong properties and use getters

---
 aleksis/apps/matrix/models.py | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/aleksis/apps/matrix/models.py b/aleksis/apps/matrix/models.py
index af52611..597a9af 100644
--- a/aleksis/apps/matrix/models.py
+++ b/aleksis/apps/matrix/models.py
@@ -136,8 +136,7 @@ class MatrixRoom(ExtensiblePolymorphicModel):
 
         return r
 
-    @property
-    def power_levels(self) -> dict[str, int]:
+    def get_power_levels(self) -> dict[str, int]:
         """Return the power levels for this room."""
         r = do_matrix_request("GET", f"rooms/{self.room_id}/state")
 
@@ -146,8 +145,7 @@ class MatrixRoom(ExtensiblePolymorphicModel):
 
         return user_levels
 
-    @property
-    def members(self) -> list[str]:
+    def get_members(self) -> list[str]:
         r = do_matrix_request(
             "GET", f"rooms/{self.room_id}/members", body={"membership": ["join", "invite"]}
         )
@@ -202,7 +200,7 @@ class MatrixRoom(ExtensiblePolymorphicModel):
     def sync_profiles(self):
         """Sync profiles for this room."""
         all_profiles = self.get_profiles()
-        members = self.members
+        members = self.get_members()
 
         # Invite all users who are not in the room yet
         for profile in all_profiles:
@@ -211,7 +209,7 @@ class MatrixRoom(ExtensiblePolymorphicModel):
                 self._invite(profile)
 
         # Set power levels for all users
-        user_levels = self.power_levels
+        user_levels = self.get_power_levels()
         for profile in all_profiles:
             if profile.person in self.group.owners.all():
                 power_level = get_site_preferences()["matrix__power_level_for_owners"]
@@ -272,9 +270,8 @@ class MatrixSpace(MatrixRoom):
         creation_content["type"] = "m.space"
         return super()._create_room(name, alias, invite, creation_content)
 
-    @property
-    def child_spaces(self) -> list[str]:
-        """Get all child spaces of this space."""
+    def get_children(self) -> list[str]:
+        """Get all children (rooms/spaces) of this space."""
         r = do_matrix_request("GET", f"rooms/{self.room_id}/state")
         return [c["state_key"] for c in r if c["type"] == "m.space.child"]
 
@@ -289,7 +286,7 @@ class MatrixSpace(MatrixRoom):
 
     def sync_children(self):
         """Sync membership of child spaces and rooms."""
-        current_children = self.child_spaces
+        current_children = self.get_children()
         child_spaces = MatrixSpace.get_queryset().filter(
             group__in=self.group.child_groups.filter(child_groups__isnull=False)
         )
-- 
GitLab