changes
This commit is contained in:
Binary file not shown.
@@ -21,7 +21,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent
|
||||
SECRET_KEY = 'django-insecure-_u202k$8qq2p*cr_eo(7k!0ngr5^n)27@85+5oy8&41(u6&j54'
|
||||
|
||||
# SECURITY WARNING: don't run with debug turned on in production!
|
||||
DEBUG = False
|
||||
DEBUG = True
|
||||
|
||||
ALLOWED_HOSTS = ['*']
|
||||
|
||||
@@ -79,7 +79,7 @@ ASGI_APPLICATION = 'api.asgi.application'
|
||||
# https://docs.djangoproject.com/en/4.1/ref/settings/#databases
|
||||
#prod:5.223.52.193 dev:5.223.42.146
|
||||
|
||||
MODE = 'prod'
|
||||
MODE = 'dev'
|
||||
DBHOST = '138.199.203.34' if MODE == 'prod' else '138.199.203.34'
|
||||
|
||||
DATABASES = {
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -145,5 +145,9 @@ def send_email(request):
|
||||
sender = request.data.get('sender')
|
||||
|
||||
# send email
|
||||
send_via_zeptomail(receiver, subject, content, sender)
|
||||
return Response(status=status.HTTP_204_NO_CONTENT)
|
||||
result = send_via_zeptomail(receiver, subject, content, sender)
|
||||
|
||||
if result:
|
||||
return Response({'message': 'Send success'}, status=200)
|
||||
else:
|
||||
return Response({'message': 'Send failed'}, status=500)
|
||||
23
app/migrations/0004_alter_user_email_alter_user_username.py
Normal file
23
app/migrations/0004_alter_user_email_alter_user_username.py
Normal file
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 5.1.7 on 2026-03-24 06:45
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('app', '0003_delete_news'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='email',
|
||||
field=models.CharField(max_length=100, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='username',
|
||||
field=models.CharField(max_length=50, null=True, unique=True),
|
||||
),
|
||||
]
|
||||
18
app/migrations/0005_alter_user_username.py
Normal file
18
app/migrations/0005_alter_user_username.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.1.7 on 2026-03-24 06:45
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('app', '0004_alter_user_email_alter_user_username'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='username',
|
||||
field=models.CharField(max_length=50, null=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,35 @@
|
||||
# Generated by Django 5.1.7 on 2026-03-24 06:59
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('app', '0005_alter_user_username'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='country',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.country'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='creator',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.user'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='email',
|
||||
field=models.CharField(default=1, max_length=50, unique=True),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='phone',
|
||||
field=models.CharField(db_index=True, max_length=20, null=True),
|
||||
),
|
||||
]
|
||||
19
app/migrations/0007_alter_customer_type.py
Normal file
19
app/migrations/0007_alter_customer_type.py
Normal file
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 5.1.7 on 2026-03-24 07:05
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('app', '0006_alter_customer_country_alter_customer_creator_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='type',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='app.customer_type'),
|
||||
),
|
||||
]
|
||||
@@ -157,9 +157,9 @@ class Discount_Type(models.Model):
|
||||
|
||||
|
||||
class User(models.Model):
|
||||
username = models.CharField(max_length=50, null=False, unique=True)
|
||||
username = models.CharField(max_length=50, null=True)
|
||||
password = models.CharField(max_length=100, null=False)
|
||||
email = models.CharField(max_length=100, null=True, unique=True)
|
||||
email = models.CharField(max_length=100, null=False, unique=True)
|
||||
avatar = models.CharField(max_length=100, null=True)
|
||||
fullname = models.CharField(max_length=50, null=False)
|
||||
display_name = models.CharField(max_length=50, null=True)
|
||||
@@ -951,21 +951,21 @@ class Customer(AutoCodeModel):
|
||||
code_padding = 5
|
||||
code = models.CharField(max_length=20, null=True, unique=True, db_index=True)
|
||||
fullname = models.CharField(max_length=200, null=False, db_index=True)
|
||||
phone = models.CharField(max_length=20, null=False, unique=True, db_index=True)
|
||||
email = models.CharField(max_length=50, null=True, unique=True)
|
||||
phone = models.CharField(max_length=20, null=True, db_index=True)
|
||||
email = models.CharField(max_length=50, null=False, unique=True)
|
||||
legal_type = models.ForeignKey(Legal_Type, null=True, related_name='+', on_delete=models.PROTECT)
|
||||
legal_code = models.CharField(max_length=20, null=True, unique=True)
|
||||
issued_place = models.ForeignKey(Issued_Place, null=True, related_name='+', on_delete=models.PROTECT)
|
||||
issued_date = models.DateField(null=True)
|
||||
country = models.ForeignKey(Country, null=False, related_name='+', on_delete=models.PROTECT)
|
||||
country = models.ForeignKey(Country, null=True, related_name='+', on_delete=models.PROTECT)
|
||||
address = models.CharField(max_length=200, null=True)
|
||||
contact_address = models.CharField(max_length=200, null=True)
|
||||
note = models.TextField(null=True)
|
||||
type = models.ForeignKey(Customer_Type, null=False, related_name='+', on_delete=models.PROTECT)
|
||||
type = models.ForeignKey(Customer_Type, null=True, related_name='+', on_delete=models.PROTECT)
|
||||
segment = models.ForeignKey(Customer_Segment, null=True, related_name='+', on_delete=models.PROTECT)
|
||||
user = models.OneToOneField(User, null=True, related_name='customer_profile', on_delete=models.SET_NULL)
|
||||
sale_staff = models.ForeignKey('Staff', null=True, related_name='+', on_delete=models.PROTECT)
|
||||
creator = models.ForeignKey(User, null=False, related_name='+', on_delete=models.PROTECT)
|
||||
creator = models.ForeignKey(User, null=True, related_name='+', on_delete=models.PROTECT)
|
||||
updater = models.ForeignKey(User, null=True, related_name='+', on_delete=models.PROTECT)
|
||||
deleted = models.BooleanField(null=False, default=False, db_index=True)
|
||||
create_time = models.DateTimeField(null=True, auto_now_add=True)
|
||||
|
||||
16
app/views.py
16
app/views.py
@@ -586,10 +586,10 @@ def login(request):
|
||||
need_serializer = False
|
||||
|
||||
if values == None:
|
||||
user = User.objects.filter(username=filter['username']).first()
|
||||
user = User.objects.filter(email=filter['email']).first()
|
||||
need_serializer = True
|
||||
else:
|
||||
user = User.objects.filter(username=filter['username']).values(*values).first()
|
||||
user = User.objects.filter(email=filter['email']).values(*values).first()
|
||||
|
||||
if user == None:
|
||||
return Response(None)
|
||||
@@ -608,15 +608,15 @@ def login(request):
|
||||
#=============================================================================
|
||||
@api_view(['POST'])
|
||||
def signin(request):
|
||||
username = request.data['username']
|
||||
email = request.data['email']
|
||||
password = request.data['password']
|
||||
user = User.objects.filter(username=username).first()
|
||||
user = User.objects.filter(email=email).first()
|
||||
if user:
|
||||
result = check_password(password, user.password)
|
||||
if result == False:
|
||||
return Response("invalid")
|
||||
else:
|
||||
info = User.objects.filter(pk=user.id).values('id','username','avatar','fullname','auth_status','auth_status__code','auth_status__name').first()
|
||||
info = User.objects.filter(pk=user.id).values('id','email','username','avatar','fullname','auth_status','auth_status__code','auth_status__name').first()
|
||||
return Response(info)
|
||||
# invalid
|
||||
return Response(status = status.HTTP_400_BAD_REQUEST)
|
||||
@@ -624,15 +624,15 @@ def signin(request):
|
||||
#=============================================================================
|
||||
@api_view(['POST'])
|
||||
def check_pin(request):
|
||||
username = request.data['username']
|
||||
email = request.data['email']
|
||||
pin = request.data['pin']
|
||||
user = User.objects.filter(username=username).first()
|
||||
user = User.objects.filter(email=email).first()
|
||||
if user:
|
||||
result = check_password(pin, user.pin)
|
||||
if result == False:
|
||||
return Response("invalid")
|
||||
else:
|
||||
info = User.objects.filter(pk=user.id).values('id','username','avatar','fullname','auth_status','auth_status__code','auth_status__name').first()
|
||||
info = User.objects.filter(pk=user.id).values('id','email','username','avatar','fullname','auth_status','auth_status__code','auth_status__name').first()
|
||||
return Response(info)
|
||||
# invalid
|
||||
return Response(status = status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
@@ -14,3 +14,4 @@ Check out the dashboard at http://127.0.0.1:4200
|
||||
|
||||
|
||||
|
||||
Server stopped!
|
||||
|
||||
Reference in New Issue
Block a user