diff --git a/oser_backend/settings/common.py b/oser_backend/settings/common.py index 84ccf8246385333d1cfbb3d32340090720319435..478aa5e2764bdef775cb33c2f28e3a9bd644b5a5 100644 --- a/oser_backend/settings/common.py +++ b/oser_backend/settings/common.py @@ -288,3 +288,12 @@ STATICFILES_DIRS = [ MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') + +# Telegram bot +TELEGRAM_BOT_TOKEN = os.getenv( + "TELEGRAM_BOT_TOKEN") +TELEGRAM = { + 'bot_token': TELEGRAM_BOT_TOKEN, + 'channel_name': 'oserSECGEN', + 'production': False, +} diff --git a/profiles/admin.py b/profiles/admin.py index f2094804f1fd73115fc5cc3f3823c138b8205078..e4976f4ef38425b24841dd2bdac2a21638e18bfd 100644 --- a/profiles/admin.py +++ b/profiles/admin.py @@ -57,5 +57,15 @@ class StudentAdmin(ProfileAdminMixin, admin.ModelAdmin, ExportCsvMixin): class Meta: # noqa model = Student - ordering = ['updated_date'] + ordering = ['-updated_date'] actions = ["export_as_csv"] + + +"""def post_event_on_telegram(event): + #message_html = render_to_string('telegram_message.html', { + # 'event': event + #}) + telegram_settings = settings.TELEGRAM + bot = telegram.Bot(token=telegram_settings['bot_token']) + bot.send_message(chat_id="@%s" % telegram_settings['channel_name'], + text="test", parse_mode=telegram.ParseMode.HTML)""" diff --git a/profiles/models.py b/profiles/models.py index 669195e9ea56dd1ef3519d5981a048a0c8871ee3..39f392534f4ae0139a95d23da221eb6292e611aa 100644 --- a/profiles/models.py +++ b/profiles/models.py @@ -7,6 +7,10 @@ from .utils import get_promotion_range from datetime import datetime from .notifications import SendDocs +import telegram +from django.conf import settings +from django.template.loader import render_to_string + class ProfileMixin: """Mixin with common functionnality for profiles.""" @@ -189,6 +193,14 @@ class Student(ProfileMixin, models.Model): # send email with link to registration docs SendDocs(user=self.user).send() + # send a telegram message to oserSECGEN + telegram_settings = settings.TELEGRAM + if telegram_settings['bot_token'] != None: + message_telegram = "Un tutoré a renseigné ses données personnelles, il attend ta validation !" + bot = telegram.Bot(token=telegram_settings['bot_token']) + bot.send_message( + chat_id="@%s" % telegram_settings['channel_name'], text=message_telegram, parse_mode=telegram.ParseMode.HTML) + return super(Student, self).save(*args, **kwargs) class Meta: # noqa diff --git a/register/admin.py b/register/admin.py index 34e2c392f051eaa955aba89c63ec8ae97d9e0fea..95a4138df47b10c89c2dac2604b074f5fe30404a 100644 --- a/register/admin.py +++ b/register/admin.py @@ -5,44 +5,6 @@ from .models import Registration from profiles.models import Student -class SchoolFilter(admin.SimpleListFilter): - title = 'établissement' - parameter_name = 'profiles__school' - - def lookups(self, request, model_admin): - list_of_school = [] - query = Student.objects.values_list( - "school", flat=True).distinct() - for school in query: - list_of_school.append((school, school)) - return list_of_school - - def queryset(self, request, queryset): - if self.value(): - emails = Student.objects.filter( - school=self.value()).values_list("user__email", flat=True) - return queryset.filter(email__in=emails) - - -class SchoolFilter(admin.SimpleListFilter): - title = 'établissement' - parameter_name = 'profiles__school' - - def lookups(self, request, model_admin): - list_of_school = [] - query = Student.objects.values_list( - "school", flat=True).distinct() - for school in query: - list_of_school.append((school, school)) - return list_of_school - - def queryset(self, request, queryset): - if self.value(): - emails = Student.objects.filter( - school=self.value()).values_list("user__email", flat=True) - return queryset.filter(email__in=emails) - - class SchoolFilter(admin.SimpleListFilter): title = 'établissement' parameter_name = 'profiles__school' diff --git a/requirements.txt b/requirements.txt index 85baa939feb52944045b1648211bc371283a6767..e1b2a84ccd78237e50e13e6499d1edbb55278e6b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,6 +12,10 @@ django-sendgrid-v5 django-filter django-rest-auth +# Telegram messages via python-telegram-bot +tornado==5.1.1 +python-telegram-bot==12.2.0 + # Storage of files in AWS S3 django-storages boto3 diff --git a/runtime.txt b/runtime.txt index 486fcce127f00eba90a4096290b67c31adaef0bd..0c89a2d2fcc8afa6b3b701fecccdbc6fb1b63c97 100644 --- a/runtime.txt +++ b/runtime.txt @@ -1 +1 @@ -python-3.6.5 +python-3.6.13