diff --git a/aleksis/apps/matrix/models.py b/aleksis/apps/matrix/models.py index b5c41bf14e8c18fa0bb17e4b1f4e944e9a4d67e7..a2c19c573d16746fa0b9c3e57dddc2642816cc30 100644 --- a/aleksis/apps/matrix/models.py +++ b/aleksis/apps/matrix/models.py @@ -184,6 +184,10 @@ class MatrixRoom(ExtensiblePolymorphicModel): ) return r + def _ensure_joined(self) -> True: + r = do_matrix_request("POST", f"join/{self.room_id}") + return r + @classmethod def get_profiles_for_group(cls, group: Group) -> QuerySet: """Get all profile objects for the members/owners of a group.""" @@ -247,8 +251,13 @@ class MatrixRoom(ExtensiblePolymorphicModel): space.sync() return None + def sync_room_params(self): + """Sync all room-specific parameters, e. g. the name.""" + self._ensure_joined() + def sync(self): """Sync this room.""" + self.sync_room_params() self.sync_profiles() if get_site_preferences()["matrix__use_spaces"]: self.sync_space() @@ -337,6 +346,7 @@ class MatrixSpace(MatrixRoom): def sync(self): """Sync this space.""" + self.sync_room_params() self.ensure_children() self.sync_children() self.sync_profiles()