Features: 1) Introduced STOREFRONT_DOMAIN in settings as a replacement for FRONTEND_DOMAIN;

Fixes: 1) Updated email templates to use `STOREFRONT_DOMAIN` instead of `FRONTEND_DOMAIN`; 2) Added a missing import for `settings` in emailing utilities;

Extra: 1) Removed unused configuration keys `FRONTEND_DOMAIN` and `BASE_DOMAIN`; 2) Cleaned up obsolete imports and formatting in serializers; 3) Adjusted environment file generation scripts to use `STOREFRONT_DOMAIN`.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-11-11 16:12:48 +03:00
parent a6bceb66db
commit ee25bb67f0
7 changed files with 8 additions and 14 deletions

View file

@ -117,7 +117,6 @@ class BrandDetailSerializer(ModelSerializer):
class BrandProductDetailSerializer(ModelSerializer): class BrandProductDetailSerializer(ModelSerializer):
class Meta: class Meta:
model = Brand model = Brand
fields = [ fields = [

View file

@ -1,4 +1,3 @@
from contextlib import suppress
from typing import Any from typing import Any
from rest_framework.fields import JSONField, SerializerMethodField from rest_framework.fields import JSONField, SerializerMethodField
@ -64,7 +63,6 @@ class CategorySimpleSerializer(ModelSerializer): # type: ignore [type-arg]
class BrandSimpleSerializer(ModelSerializer): # type: ignore [type-arg] class BrandSimpleSerializer(ModelSerializer): # type: ignore [type-arg]
class Meta: class Meta:
model = Brand model = Brand
fields = [ fields = [

View file

@ -1,5 +1,6 @@
from celery.app import shared_task from celery.app import shared_task
from constance import config from constance import config
from django.conf import settings
from django.contrib.auth.tokens import PasswordResetTokenGenerator from django.contrib.auth.tokens import PasswordResetTokenGenerator
from django.core.mail import EmailMessage from django.core.mail import EmailMessage
from django.template.loader import render_to_string from django.template.loader import render_to_string
@ -25,7 +26,7 @@ def send_verification_email_task(user_pk: str) -> tuple[bool, str]:
"../templates/user_verification_email.html", "../templates/user_verification_email.html",
{ {
"user_first_name": user.first_name, "user_first_name": user.first_name,
"activation_link": f"https://{config.FRONTEND_DOMAIN}/{user.language}/activate-user?uid={urlsafe_base64_encode(force_bytes(user.uuid))}" "activation_link": f"https://{settings.STOREFRONT_DOMAIN}/{user.language}/activate-user?uid={urlsafe_base64_encode(force_bytes(user.uuid))}"
f"&token={urlsafe_base64_encode(force_bytes(user.activation_token))}", f"&token={urlsafe_base64_encode(force_bytes(user.activation_token))}",
"project_name": config.PROJECT_NAME, "project_name": config.PROJECT_NAME,
}, },
@ -64,7 +65,7 @@ def send_reset_password_email_task(user_pk: str) -> tuple[bool, str]:
"../templates/user_reset_password_email.html", "../templates/user_reset_password_email.html",
{ {
"user_first_name": user.first_name, "user_first_name": user.first_name,
"reset_link": f"https://{config.FRONTEND_DOMAIN}/{user.language}/reset-password?uid=" "reset_link": f"https://{settings.STOREFRONT_DOMAIN}/{user.language}/reset-password?uid="
f"{urlsafe_base64_encode(force_bytes(user.pk))}" f"{urlsafe_base64_encode(force_bytes(user.pk))}"
f"&token={PasswordResetTokenGenerator().make_token(user)}", f"&token={PasswordResetTokenGenerator().make_token(user)}",
"project_name": config.PROJECT_NAME, "project_name": config.PROJECT_NAME,

View file

@ -16,6 +16,7 @@ SECRET_KEY = getenv("SECRET_KEY", "SUPER_SECRET_KEY")
DEBUG = bool(int(getenv("DEBUG", "1"))) DEBUG = bool(int(getenv("DEBUG", "1")))
BASE_DOMAIN: str = getenv("EVIBES_BASE_DOMAIN", "localhost") BASE_DOMAIN: str = getenv("EVIBES_BASE_DOMAIN", "localhost")
STOREFRONT_DOMAIN: str = getenv("EVIBES_STOREFRONT_DOMAIN", "localhost")
ALLOWED_HOSTS: set[str] = { ALLOWED_HOSTS: set[str] = {
"app", "app",

View file

@ -20,8 +20,6 @@ CONSTANCE_ADDITIONAL_FIELDS = {
CONSTANCE_CONFIG = OrderedDict( CONSTANCE_CONFIG = OrderedDict(
[ [
("PROJECT_NAME", (getenv("EVIBES_PROJECT_NAME"), _("Name of the project"))), ("PROJECT_NAME", (getenv("EVIBES_PROJECT_NAME"), _("Name of the project"))),
("FRONTEND_DOMAIN", (getenv("EVIBES_FRONTEND_DOMAIN"), _("Frontend domain name"))),
("BASE_DOMAIN", (getenv("EVIBES_BASE_DOMAIN"), _("Base domain name"))),
("COMPANY_NAME", (getenv("COMPANY_NAME"), _("Name of the company"))), ("COMPANY_NAME", (getenv("COMPANY_NAME"), _("Name of the company"))),
("COMPANY_ADDRESS", (getenv("COMPANY_ADDRESS"), _("Address of the company"))), ("COMPANY_ADDRESS", (getenv("COMPANY_ADDRESS"), _("Address of the company"))),
("COMPANY_PHONE_NUMBER", (getenv("COMPANY_PHONE_NUMBER"), _("Phone number of the company"))), ("COMPANY_PHONE_NUMBER", (getenv("COMPANY_PHONE_NUMBER"), _("Phone number of the company"))),
@ -52,8 +50,6 @@ CONSTANCE_CONFIG_FIELDSETS = OrderedDict(
{ {
gettext_noop("General Options"): ( gettext_noop("General Options"): (
"PROJECT_NAME", "PROJECT_NAME",
"FRONTEND_DOMAIN",
"BASE_DOMAIN",
"COMPANY_NAME", "COMPANY_NAME",
"COMPANY_ADDRESS", "COMPANY_ADDRESS",
"COMPANY_PHONE_NUMBER", "COMPANY_PHONE_NUMBER",
@ -89,7 +85,6 @@ CONSTANCE_CONFIG_FIELDSETS = OrderedDict(
EXPOSABLE_KEYS = [ EXPOSABLE_KEYS = [
"PROJECT_NAME", "PROJECT_NAME",
"BASE_DOMAIN",
"COMPANY_NAME", "COMPANY_NAME",
"COMPANY_ADDRESS", "COMPANY_ADDRESS",
"COMPANY_PHONE_NUMBER", "COMPANY_PHONE_NUMBER",

View file

@ -34,7 +34,7 @@ if [ -f .env ]; then
fi fi
EVIBES_PROJECT_NAME=$(prompt_default EVIBES_PROJECT_NAME eVibes) EVIBES_PROJECT_NAME=$(prompt_default EVIBES_PROJECT_NAME eVibes)
EVIBES_FRONTEND_DOMAIN=$(prompt_default EVIBES_FRONTEND_DOMAIN evibes.com) EVIBES_STOREFRONT_DOMAIN=$(prompt_default EVIBES_STOREFRONT_DOMAIN evibes.com)
EVIBES_BASE_DOMAIN=$(prompt_default EVIBES_BASE_DOMAIN evibes.com) EVIBES_BASE_DOMAIN=$(prompt_default EVIBES_BASE_DOMAIN evibes.com)
SENTRY_DSN=$(prompt_default SENTRY_DSN "") SENTRY_DSN=$(prompt_default SENTRY_DSN "")
DEBUG=$(prompt_default DEBUG 1) DEBUG=$(prompt_default DEBUG 1)
@ -81,7 +81,7 @@ DEEPL_AUTH_KEY=$(prompt_default DEEPL_AUTH_KEY "Haha, really? x3")
cat > .env <<EOF cat > .env <<EOF
EVIBES_PROJECT_NAME="${EVIBES_PROJECT_NAME}" EVIBES_PROJECT_NAME="${EVIBES_PROJECT_NAME}"
EVIBES_FRONTEND_DOMAIN="${EVIBES_FRONTEND_DOMAIN}" EVIBES_STOREFRONT_DOMAIN="${EVIBES_STOREFRONT_DOMAIN}"
EVIBES_BASE_DOMAIN="${EVIBES_BASE_DOMAIN}" EVIBES_BASE_DOMAIN="${EVIBES_BASE_DOMAIN}"
SENTRY_DSN="${SENTRY_DSN}" SENTRY_DSN="${SENTRY_DSN}"
DEBUG=${DEBUG} DEBUG=${DEBUG}

View file

@ -50,7 +50,7 @@ if (Test-Path '.env')
} }
$EVIBES_PROJECT_NAME = Prompt-Default 'EVIBES_PROJECT_NAME' 'eVibes' $EVIBES_PROJECT_NAME = Prompt-Default 'EVIBES_PROJECT_NAME' 'eVibes'
$EVIBES_FRONTEND_DOMAIN = Prompt-Default 'EVIBES_FRONTEND_DOMAIN' 'evibes.com' $EVIBES_STOREFRONT_DOMAIN = Prompt-Default 'EVIBES_STOREFRONT_DOMAIN' 'evibes.com'
$EVIBES_BASE_DOMAIN = Prompt-Default 'EVIBES_BASE_DOMAIN' 'evibes.com' $EVIBES_BASE_DOMAIN = Prompt-Default 'EVIBES_BASE_DOMAIN' 'evibes.com'
$SENTRY_DSN = Prompt-Default 'SENTRY_DSN' '' $SENTRY_DSN = Prompt-Default 'SENTRY_DSN' ''
$DEBUG = Prompt-Default 'DEBUG' '1' $DEBUG = Prompt-Default 'DEBUG' '1'
@ -98,7 +98,7 @@ $DEEPL_AUTH_KEY = Prompt-Default 'DEEPL_AUTH_KEY' 'Haha, really? x3
$lines = @( $lines = @(
"EVIBES_PROJECT_NAME=""$EVIBES_PROJECT_NAME""" "EVIBES_PROJECT_NAME=""$EVIBES_PROJECT_NAME"""
"EVIBES_FRONTEND_DOMAIN=""$EVIBES_FRONTEND_DOMAIN""" "EVIBES_STOREFRONT_DOMAIN=""$EVIBES_STOREFRONT_DOMAIN"""
"EVIBES_BASE_DOMAIN=""$EVIBES_BASE_DOMAIN""" "EVIBES_BASE_DOMAIN=""$EVIBES_BASE_DOMAIN"""
"SENTRY_DSN=""$SENTRY_DSN""" "SENTRY_DSN=""$SENTRY_DSN"""
"DEBUG=$DEBUG" "DEBUG=$DEBUG"