From f1f7c0e89b5da3713b913238a4e89c17aeea5a10 Mon Sep 17 00:00:00 2001 From: Administrator Date: Wed, 11 Oct 2023 18:37:39 +0300 Subject: [PATCH] add telegram --- templates/profile.html | 26 ++++++++++++++++++- ...elegram_id_customuser_telegram_username.py | 23 ++++++++++++++++ web/models/custom_user.py | 2 ++ web/views/is_staff.py | 4 ++- web/views/profile.py | 8 ++++++ 5 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 web/migrations/0007_customuser_telegram_id_customuser_telegram_username.py diff --git a/templates/profile.html b/templates/profile.html index 07f4861..387da09 100644 --- a/templates/profile.html +++ b/templates/profile.html @@ -25,6 +25,9 @@ {{ account.surname }} {{ account.name }} {{ account.userinfo.activity_status }} +
+ {% csrf_token %} + + + + + + @@ -86,11 +109,12 @@ {% endif %}
@@ -68,7 +71,27 @@
+ {% if owner %} + + {% else %}

{{ account.email }}

+ {% endif %} +
+

+
+ {% if owner %} +
+ Узнать можно в боте + {% else %} + {% if account.telegram_username %} + {{ account.telegram_username }} + {% endif %} + {% endif %}
- Выход из аккаунта + Выход из аккаунтаСохранить данные
+
diff --git a/web/migrations/0007_customuser_telegram_id_customuser_telegram_username.py b/web/migrations/0007_customuser_telegram_id_customuser_telegram_username.py new file mode 100644 index 0000000..02d7af7 --- /dev/null +++ b/web/migrations/0007_customuser_telegram_id_customuser_telegram_username.py @@ -0,0 +1,23 @@ +# Generated by Django 4.1.7 on 2023-10-11 15:17 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('web', '0006_remove_project_web_project_next_st_234c0f_idx_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='customuser', + name='telegram_id', + field=models.BigIntegerField(blank=True, null=True), + ), + migrations.AddField( + model_name='customuser', + name='telegram_username', + field=models.TextField(blank=True, null=True), + ), + ] diff --git a/web/models/custom_user.py b/web/models/custom_user.py index d77a530..c8e42af 100644 --- a/web/models/custom_user.py +++ b/web/models/custom_user.py @@ -5,6 +5,8 @@ from django.db import models class CustomUser(AbstractUser): vk_id = models.IntegerField(null=True, blank=True) yandex_id = models.BigIntegerField(null=True, blank=True) + telegram_id = models.BigIntegerField(null=True, blank=True) + telegram_username = models.TextField(null=True, blank=True) only_one_project = models.BooleanField(default=True) selected_project = models.ForeignKey('Project', on_delete=models.CASCADE, null=True) diff --git a/web/views/is_staff.py b/web/views/is_staff.py index 2de22fa..451e852 100644 --- a/web/views/is_staff.py +++ b/web/views/is_staff.py @@ -1,4 +1,3 @@ -from django.db.models import Q from django.http import HttpResponse, JsonResponse from Platform import settings @@ -18,6 +17,9 @@ def is_staff(request): email = request.GET.get('email') if email: data['email'] = email + telegram_id = request.GET.get('telegram_id') + if telegram_id: + data['telegram_id'] = telegram_id for key, value in data.items(): if len(CustomUser.objects.filter(**{key: value})) != 0: return JsonResponse({'is_staff': True}) diff --git a/web/views/profile.py b/web/views/profile.py index 1713f55..c5d6779 100644 --- a/web/views/profile.py +++ b/web/views/profile.py @@ -18,6 +18,14 @@ class ProfileView(BaseView): minio_client.put_object(self.request.FILES["file"].read(), f"profile_photos/{self.request.user.id}") return self + def post_save_data(self): + self.request.user.telegram_username = self.request.POST['telegram_username'] if self.request.POST['telegram_username'] else None + self.request.user.telegram_id = int(self.request.POST['telegram_id']) if self.request.POST['telegram_id'] and str(self.request.POST['telegram_id']).isnumeric() else None + self.request.user.email = self.request.POST['email'] if self.request.POST['email'] else None + self.request.user.save() + return '/profile' + + def post_change_password(self): if self.request.POST['password'] != self.request.POST['repeat']: return '/profile?err=true'