Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions chats/permissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ class IsChatMember(BasePermission):
Allows access only to authenticated users.
"""

def has_permission(self, request, view):
def has_permission(self, request, view) -> bool:
kwargs = request.parser_context.get("kwargs")

chat_id: str = kwargs["id"]

return str(request.user.id) in chat_id
return str(request.user.id) in chat_id.split("_")
44 changes: 22 additions & 22 deletions procollab/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,31 +321,31 @@

SESSION_COOKIE_SECURE = False

# EMAIL_BACKEND = "anymail.backends.unisender_go.EmailBackend"
#
# UNISENDER_GO_API_KEY = config("UNISENDER_GO_API_KEY", default="", cast=str)
# ANYMAIL = {
# "UNISENDER_GO_API_KEY": UNISENDER_GO_API_KEY,
# "UNISENDER_GO_API_URL": "https://go1.unisender.ru/ru/transactional/api/v1/",
# "UNISENDER_GO_SEND_DEFAULTS": {
# "esp_extra": {
# "global_language": "ru",
# }
# },
# }

# EMAIL_USE_TLS = True
#
# EMAIL_PORT = config("EMAIL_PORT", default=587, cast=int)
# EMAIL_USER = config("EMAIL_USER", cast=str, default="example@mail.ru")
EMAIL_BACKEND = "anymail.backends.unisender_go.EmailBackend"

UNISENDER_GO_API_KEY = config("UNISENDER_GO_API_KEY", default="", cast=str)
ANYMAIL = {
"UNISENDER_GO_API_KEY": UNISENDER_GO_API_KEY,
"UNISENDER_GO_API_URL": "https://go1.unisender.ru/ru/transactional/api/v1/",
"UNISENDER_GO_SEND_DEFAULTS": {
"esp_extra": {
"global_language": "ru",
}
},
}

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_USE_TLS = True
EMAIL_HOST = config("EMAIL_HOST", default="smtp.gmail.com", cast=str)

EMAIL_PORT = config("EMAIL_PORT", default=587, cast=int)
EMAIL_HOST_USER = config("EMAIL_USER", cast=str, default="example@mail.ru")
EMAIL_USER = EMAIL_HOST_USER
EMAIL_HOST_PASSWORD = config("EMAIL_PASSWORD", cast=str, default="password")
EMAIL_USER = config("EMAIL_USER", cast=str, default="example@mail.ru")

# EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
# EMAIL_USE_TLS = True
# EMAIL_HOST = config("EMAIL_HOST", default="smtp.gmail.com", cast=str)
# EMAIL_PORT = config("EMAIL_PORT", default=587, cast=int)
# EMAIL_HOST_USER = config("EMAIL_USER", cast=str, default="example@mail.ru")
# EMAIL_USER = EMAIL_HOST_USER
# EMAIL_HOST_PASSWORD = config("EMAIL_PASSWORD", cast=str, default="password")

SELECTEL_ACCOUNT_ID = config("SELECTEL_ACCOUNT_ID", cast=str, default="123456")
SELECTEL_CONTAINER_NAME = config(
Expand Down
16 changes: 14 additions & 2 deletions users/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ class UserLanguagesInline(admin.TabularInline):
verbose_name_plural = "Знание языков"


@admin.action(description="Сделать выбранных пользователей подтверждёнными")
def make_active(modeladmin, request, queryset):
queryset.update(is_active=True)


@admin.register(CustomUser)
class CustomUserAdmin(admin.ModelAdmin):
fieldsets = (
Expand Down Expand Up @@ -126,6 +131,7 @@ class CustomUserAdmin(admin.ModelAdmin):
"is_active",
"dataset_migration_applied",
"v2_speciality",
"datetime_created",
)
list_display_links = (
"id",
Expand Down Expand Up @@ -153,6 +159,7 @@ class CustomUserAdmin(admin.ModelAdmin):
UserWorkExperienceInline,
UserLanguagesInline,
]
actions = [make_active]

readonly_fields = ("ordering_score",)
change_form_template = "users/admin/users_change_form.html"
Expand Down Expand Up @@ -370,7 +377,11 @@ class UserLanguagesAdmin(admin.ModelAdmin):
@admin.register(UserSkillConfirmation)
class UserSkillConfirmationAdmin(admin.ModelAdmin):
list_display = ("id", "get_user_and_skill", "confirmed_by", "confirmed_at")
search_fields = ("skill_to_object__skill__name", "confirmed_by__first_name", "confirmed_by__last_name")
search_fields = (
"skill_to_object__skill__name",
"confirmed_by__first_name",
"confirmed_by__last_name",
)
raw_id_fields = ("skill_to_object", "confirmed_by")
readonly_fields = ("confirmed_at",)

Expand All @@ -382,4 +393,5 @@ def get_user_and_skill(self, obj):
# Possible contingencies with attributes.
except Exception:
return ""
get_user_and_skill.short_description = 'User and Skill'

get_user_and_skill.short_description = "User and Skill"
7 changes: 2 additions & 5 deletions users/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -470,8 +470,6 @@ def post(self, request, *args, **kwargs):
return Response(
"User with given email does not exists!", status=status.HTTP_404_NOT_FOUND
)
except Exception:
return Response(status=status.HTTP_400_BAD_REQUEST)


class ForceVerifyView(APIView):
Expand Down Expand Up @@ -614,9 +612,7 @@ def get(self, request, *args, **kwargs) -> HttpResponse:
data_preparer = UserCVDataPreparerV2(request.user.pk)
user_cv_data: UserCVDataV2 = data_preparer.get_prepared_data()

html_string: str = render_to_string(
data_preparer.TEMPLATE_PATH, user_cv_data
)
html_string: str = render_to_string(data_preparer.TEMPLATE_PATH, user_cv_data)
binary_pdf_file: bytes | None = HTML(string=html_string).write_pdf()

encoded_filename: str = urllib.parse.quote(
Expand All @@ -635,6 +631,7 @@ class UserCVMailing(APIView):
Full-fledged work `UserCVDownload`.
The user can send a letter once per minute.
"""

permission_classes = [IsAuthenticated]

def get(self, request, *args, **kwargs):
Expand Down