1
0
mirror of https://gitlab.com/animath/si/plateforme-corres2math.git synced 2025-06-25 02:20:29 +02:00

Create a Matrix channel when a team got created

This commit is contained in:
Yohann D'ANELLO
2020-10-29 15:07:03 +01:00
parent b33723efb3
commit 6647a284f4
5 changed files with 41 additions and 18 deletions

View File

@ -1,3 +1,4 @@
import asyncio
import os
import re
@ -56,6 +57,7 @@ class Team(models.Model):
"hotline", # TODO Use a custom sympa template
f"Liste de diffusion pour contacter l'équipe {self.name} des Correspondances",
"education",
raise_error=False,
)
def delete_mailing_list(self):
@ -68,6 +70,7 @@ class Team(models.Model):
Matrix.create_room(
visibility=RoomVisibility.private,
name=f"#équipe-{self.trigram.lower()}",
alias=f"team-{self.trigram.lower()}",
topic=f"Discussion de l'équipe {self.name}",
preset=RoomPreset.private_chat,

View File

@ -1,11 +1,12 @@
import asyncio
from io import BytesIO
import os
from zipfile import ZipFile
from django.shortcuts import redirect
from django.views.generic.base import View, TemplateView
from django.views.generic.base import TemplateView
from corres2math.lists import get_sympa_client
from corres2math.matrix import Matrix
from corres2math.views import AdminMixin
from django.contrib.auth.mixins import LoginRequiredMixin
from django.core.exceptions import PermissionDenied
@ -51,6 +52,9 @@ class CreateTeamView(LoginRequiredMixin, CreateView):
registration.save()
get_sympa_client().subscribe(user.email, f"equipe-{form.instance.trigram.lower()}", False,
f"{user.first_name} {user.last_name}")
Matrix.invite(f"#team-{form.instance.trigram.lower()}:correspondances-maths.fr",
f"@{user.registration.matrix_username}:correspondances-maths.fr")
return ret
def get_success_url(self):
@ -82,6 +86,9 @@ class JoinTeamView(LoginRequiredMixin, FormView):
registration.save()
get_sympa_client().subscribe(user.email, f"equipe-{form.instance.trigram.lower()}", False,
f"{user.first_name} {user.last_name}")
Matrix.invite(f"#team-{form.instance.trigram.lower()}:correspondances-maths.fr",
f"@{user.registration.matrix_username}:correspondances-maths.fr")
return ret
def get_success_url(self):

View File

@ -9,6 +9,6 @@ class CustomAuthUser(DjangoAuthUser):
def attributs(self):
d = super().attributs()
if self.user:
d["matrix_username"] = f"corres2math_{self.user.pk}"
d["matrix_username"] = self.user.registration.matrix_username
d["display_name"] = str(self.user.registration)
return d

View File

@ -64,6 +64,10 @@ class Registration(PolymorphicModel):
def is_admin(self):
return isinstance(self, AdminRegistration) or self.user.is_superuser
@property
def matrix_username(self):
return f"corres2math_{self.user.pk}"
def get_absolute_url(self):
return reverse_lazy("registration:user_detail", args=(self.user_id,))