Skip to content
Snippets Groups Projects
Verified Commit 1234a879 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Use word "provision" instead of "use" to underline the correct meaning

parent 88c57d17
No related branches found
No related tags found
1 merge request!2Resolve "Review tasks"
Pipeline #57575 failed
from django.utils.translation import gettext as _
from aleksis.apps.matrix.tasks import use_groups_in_matrix
from aleksis.apps.matrix.tasks import provision_groups_in_matrix
from aleksis.core.forms import ActionForm
def use_in_matrix_action(modeladmin, request, queryset):
"""Use selected groups in Matrix."""
use_groups_in_matrix.delay(list(queryset.values_list("pk", flat=True)))
def provision_in_matrix_action(modeladmin, request, queryset):
"""Provision selected groups in Matrix."""
provision_groups_in_matrix.delay(list(queryset.values_list("pk", flat=True)))
use_in_matrix_action.short_description = _("Use in Matrix")
provision_in_matrix_action.short_description = _("Provision in Matrix")
class GroupMatrixRoomActionForm(ActionForm):
def get_actions(self):
return [use_in_matrix_action]
return [provision_in_matrix_action]
......@@ -31,7 +31,7 @@ class Migration(migrations.Migration):
options={
'verbose_name': 'Matrix room',
'verbose_name_plural': 'Matrix rooms',
'permissions': (('use_group_in_matrix', 'Can use group in Matrix'),),
'permissions': (('provision_group_in_matrix', 'Can provision group in Matrix'),),
},
managers=[
('objects', aleksis.core.managers.PolymorphicCurrentSiteManager()),
......
......@@ -5,21 +5,21 @@ from django.utils.translation import gettext_lazy as _
from celery.result import AsyncResult
from aleksis.apps.matrix.models import MatrixRoom
from aleksis.apps.matrix.tasks import use_group_in_matrix
from aleksis.apps.matrix.tasks import provision_group_in_matrix
from aleksis.core.models import Group
@Group.method
def use_in_matrix(self, sync: bool = False) -> Union[MatrixRoom, AsyncResult]:
def provision_in_matrix(self, sync: bool = False) -> Union[MatrixRoom, AsyncResult]:
"""Create and sync a room for this group in Matrix."""
if sync:
return self._use_in_matrix()
return self._provision_in_matrix()
else:
return use_group_in_matrix.delay(self.pk)
return provision_group_in_matrix.delay(self.pk)
@Group.method
def _use_in_matrix(self) -> MatrixRoom:
def _provision_in_matrix(self) -> MatrixRoom:
"""Create and sync a room for this group in Matrix."""
room = MatrixRoom.from_group(self)
room.sync()
......
......@@ -248,7 +248,7 @@ class MatrixRoom(ExtensiblePolymorphicModel):
class Meta:
verbose_name = _("Matrix room")
verbose_name_plural = _("Matrix rooms")
permissions = (("use_group_in_matrix", "Can use group in Matrix"),)
permissions = (("provision_group_in_matrix", "Can provision group in Matrix"),)
class MatrixSpace(MatrixRoom):
......@@ -321,7 +321,7 @@ class MatrixSpace(MatrixRoom):
def ensure_children(self):
"""Ensure that all child rooms/spaces exist."""
for group in self.group.child_groups.all().prefetch_related("child_groups"):
group.use_in_matrix(sync=True)
group.provision_in_matrix(sync=True)
if group.child_groups.all():
space = MatrixSpace.from_group(group)
space.ensure_children()
......
......@@ -15,10 +15,10 @@ view_matrix_room_predicate = view_group_predicate & (
)
rules.add_perm("matrix.view_matrixroom_rule", view_matrix_room_predicate)
use_room_for_matrix_predicate = view_matrix_room_predicate & (
has_global_perm("matrix.use_group_in_matrix")
provision_room_for_matrix_predicate = view_matrix_room_predicate & (
has_global_perm("matrix.provision_group_in_matrix")
)
rules.add_perm("matrix.use_group_in_matrix_rule", use_room_for_matrix_predicate)
rules.add_perm("matrix.provision_group_in_matrix_rule", provision_room_for_matrix_predicate)
show_menu_predicate = view_matrix_rooms_predicate
rules.add_perm("matrix.show_menu_rule", show_menu_predicate)
......@@ -13,15 +13,15 @@ def sync_room(pk: int):
@app.task
def use_groups_in_matrix(pks: Sequence[int]):
"""Use provided groups in Matrix."""
def provision_groups_in_matrix(pks: Sequence[int]):
"""Provision provided groups in Matrix."""
groups = Group.objects.filter(pk__in=pks)
for group in groups:
group._use_in_matrix()
group._provision_in_matrix()
@app.task
def use_group_in_matrix(pk: int):
"""Use provided group in Matrix."""
def provision_group_in_matrix(pk: int):
"""Provision provided group in Matrix."""
group = Group.objects.get(pk=pk)
group._use_in_matrix()
group._provision_in_matrix()
......@@ -307,7 +307,7 @@ def test_use_room_sync(matrix_bot_user):
g.members.add(p1)
r = g.use_in_matrix(sync=True)
r = g.provision_in_matrix(sync=True)
assert isinstance(r, MatrixRoom)
......@@ -335,7 +335,7 @@ class MatrixCeleryTest(TransactionTestCase):
g.members.add(p1)
r = g.use_in_matrix(sync=False)
r = g.provision_in_matrix(sync=False)
assert isinstance(r, AsyncResult)
time.sleep(3)
......@@ -352,7 +352,7 @@ def test_space_creation(matrix_bot_user):
child_3 = Group.objects.create(name="Test Group 3")
parent_group.child_groups.set([child_1, child_2, child_3])
parent_group.use_in_matrix(sync=True)
parent_group.provision_in_matrix(sync=True)
get_site_preferences()["matrix__use_spaces"] = True
......@@ -399,7 +399,7 @@ def test_space_creation_with_child_spaces(matrix_bot_user):
child_3 = Group.objects.create(name="Test Group 3")
parent_group.child_groups.set([child_1, child_2, child_3])
parent_group.use_in_matrix(sync=True)
parent_group.provision_in_matrix(sync=True)
get_site_preferences()["matrix__use_spaces"] = True
......
......@@ -34,6 +34,8 @@ class MatrixRoomListView(PermissionRequiredMixin, SingleTableMixin, FilterView):
def post(self, request, *args, **kwargs):
r = super().get(request, *args, **kwargs)
if self.action_form.is_valid() and request.user.has_perm("matrix.use_group_in_matrix_rule"):
if self.action_form.is_valid() and request.user.has_perm(
"matrix.provision_group_in_matrix_rule"
):
self.action_form.execute()
return r
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment