first push

This commit is contained in:
2026-01-18 11:45:53 +03:30
commit 6bcd71d9ec
702 changed files with 272997 additions and 0 deletions

View File

3
authentication/admin.py Normal file
View File

@@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

6
authentication/apps.py Normal file
View File

@@ -0,0 +1,6 @@
from django.apps import AppConfig
class AuthenticationConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'authentication'

View File

@@ -0,0 +1,169 @@
# توابع مورد نیاز برای اتصال به ای پی آی استوریج آروان
# test
import boto3
import logging
from botocore.exceptions import ClientError
from django.http import HttpResponse
from PIL import Image
import io
import base64
ARVAN_STORAGE_URL = "https://dmstore.s3.ir-thr-at1.arvanstorage.ir/36bba98f-a813-4667-bd60-33aef708bcba.jpg?AWSAccessKeyId=d5739a44-e663-4f43-99f3-13121a62a9e6&Signature=KpBpHBtAS77Y3hHx53g6bmjlGpc%3D&Expires=1651552380"
def connect():
logging.basicConfig(level=logging.INFO)
try:
s3_resource = boto3.resource(
's3',
endpoint_url='https://s3.ir-thr-at1.arvanstorage.ir',
aws_access_key_id='b0b563b2-bb60-4faf-b09a-660982e70b00',
aws_secret_access_key='abdcccaadbd3d897b5432f72bc91048940e012ffa4f308ba0fe16f28e3c80e57'
)
except Exception as exc:
logging.info(exc)
return s3_resource
def get_bucket_list():
s3_resource = connect()
li = []
try:
for bucket in s3_resource.buckets.all():
logging.info(f'bucket_name: {bucket.name}')
li.append(bucket.name)
except ClientError as exc:
logging.error(exc)
return li[0]
# این تابع رو درتمامی قسمت های سیستم میتونیم برای ذخیره عکس بر روی استوریج آروان استفاده کنیم
# def upload_object(image_data, bucket_name, object_name):
# resource_connect = connect()
# s3_resource = resource_connect
# bucket = s3_resource.Bucket(bucket_name)
# with open(object_name, "wb") as fh:
# fh.write(base64.standard_b64decode(image_data))
# with open(object_name, "rb") as fh:
# bucket.put_object(
# ACL='public-read',
# Body=fh,
# Key=object_name
# )
def upload_object(image_data, bucket_name, object_name):
resource_connect = connect()
s3_resource = resource_connect
bucket = s3_resource.Bucket(bucket_name)
buffer = io.BytesIO()
imgdata = base64.b64decode(image_data)
img = Image.open(io.BytesIO(imgdata))
new_img = img.resize((500, 500)) # x, y
new_img.save(buffer, format="PNG")
img_b64 = base64.b64encode(buffer.getvalue())
with open(object_name, "wb") as fh:
fh.write(base64.standard_b64decode(img_b64))
# base64.standard_b64decode(image_data)
with open(object_name, "rb") as fh:
bucket.put_object(
ACL='public-read',
Body=fh,
Key=object_name
)
def compress_image(image_data, quality):
imgdata = base64.b64decode(image_data)
img = Image.open(io.BytesIO(imgdata))
buffer = io.BytesIO()
img.save(buffer, format='JPEG', quality=quality)
compressed_data = buffer.getvalue()
img_b64 = base64.b64encode(compressed_data)
return img_b64
def upload_object_resize(image_data, bucket_name, object_name):
resource_connect = connect()
s3_resource = resource_connect
bucket = s3_resource.Bucket(bucket_name)
# compressed_img = compress_image(image_data, quality=200) # تغییر دهید quality به مقدار دلخواه خود
decoded_image_data = base64.b64decode(image_data)
image_stream = io.BytesIO(decoded_image_data)
bucket.put_object(
ACL='public-read',
Body=image_stream,
Key=object_name
)
# with open(object_name, "wb") as fh:
# fh.write(base64.standard_b64decode(compressed_img))
#
# with open(object_name, "rb") as fh:
# bucket.put_object(
# ACL='public-read',
# Body=fh,
# Key=object_name
# )
# def upload_object_resize(image_data, bucket_name, object_name):
# resource_connect = connect()
# s3_resource = resource_connect
# bucket = s3_resource.Bucket(bucket_name)
# buffer = io.BytesIO()
# imgdata = base64.b64decode(image_data)
# img = Image.open(io.BytesIO(imgdata))
# img.save(buffer, format="PNG")
# img_b64 = base64.b64encode(buffer.getvalue())
# with open(object_name, "wb") as fh:
# fh.write(base64.standard_b64decode(img_b64))
# # base64.standard_b64decode(image_data)
# with open(object_name, "rb") as fh:
# bucket.put_object(
# ACL='public-read',
# Body=fh,
# Key=object_name
# )
def upload_object_less_size(image_data, bucket_name, object_name):
resource_connect = connect()
s3_resource = resource_connect
bucket = s3_resource.Bucket(bucket_name)
buffer = io.BytesIO()
imgdata = base64.b64decode(image_data)
img = Image.open(io.BytesIO(imgdata))
# new_img = img.resize((500, 500)) # x, y
img.save(buffer, format="PNG")
img_b64 = base64.b64encode(buffer.getvalue())
with open(object_name, "wb") as fh:
fh.write(base64.standard_b64decode(img_b64))
# base64.standard_b64decode(image_data)
with open(object_name, "rb") as fh:
bucket.put_object(
ACL='public-read',
Body=fh,
Key=object_name
)
def upload_object_for_poultry_science(image_data, bucket_name, object_name):
resource_connect = connect()
s3_resource = resource_connect
bucket = s3_resource.Bucket(bucket_name)
buffer = io.BytesIO()
imgdata = base64.b64decode(image_data)
new_img = Image.open(io.BytesIO(imgdata))
new_img.save(buffer, format="JPEG")
img_b64 = base64.b64encode(buffer.getvalue())
with open(object_name, "wb") as fh:
fh.write(base64.standard_b64decode(img_b64))
with open(object_name, "rb") as fh:
bucket.put_object(
ACL='public-read',
Body=fh,
Key=object_name
)

View File

@@ -0,0 +1,29 @@
from url_filter.filtersets import ModelFilterSet
from authentication.models import (
UserProfile,
SystemUserProfile, ExternalTransaction
)
from panel.models import PoultryRequestExchange
# فیلترست مریوط به مدل کاربر (برای قسمت جستجو اطلاعات کاربراستفاده میشود)
class UserProfileFilterSet(ModelFilterSet):
class Meta:
model = UserProfile
# فیلترست مریوط به مدل درخواست مرغدار (برای قسمت جستجو درخواست مرغدار استفاده میشود)
class PoultryRequestExchangeFilterSet(ModelFilterSet):
class Meta:
model = PoultryRequestExchange
class SystemUserProfileFilteSet(ModelFilterSet):
class Meta:
model = SystemUserProfile
class ExternalTransactionFilterSet(ModelFilterSet):
class Meta:
model = ExternalTransaction

View File

@@ -0,0 +1,5 @@
from django.http import JsonResponse
def health_check(request):
return JsonResponse({"status": "ok"})

View File

View File

@@ -0,0 +1,78 @@
from django.contrib.auth.models import User
from rest_framework import status
from rest_framework.response import Response
from authentication.models import City, SystemUserProfile, SystemAddress
from authentication.views import ARTA_URL_REGISTER
from panel.admin import PROJECT_API_KEY
from panel.models import Guilds, Wallet
import requests
def register_user(group, city_name, mobile, first_name, last_name, national_id, postal_code, address_text):
try:
# Fetch city and related province
city = City.objects.select_related('province').get(name=city_name)
province = city.province
except City.DoesNotExist:
return Response({"result": "شهر یافت نشد"}, status=status.HTTP_400_BAD_REQUEST)
# Check if user profile exists and if they are associated with a guild
system_profile = SystemUserProfile.objects.filter(mobile=mobile, trash=False).last()
if system_profile and Guilds.objects.filter(user=system_profile, trash=False).exists():
return Response({"result": "این صنف قبلا ثبت شده است"}, status=status.HTTP_403_FORBIDDEN)
# Register a new user if system profile does not exist
if not system_profile:
password = "123456"
registration_data = {
"username": mobile,
"password": password,
"api_key": PROJECT_API_KEY
}
# Attempt to register the user via ARTA
response = requests.post(ARTA_URL_REGISTER, data=registration_data, verify=False)
if response.status_code != 200:
return None
# Create Django user
user = User.objects.create(username=mobile, first_name=first_name, last_name=last_name)
# Generate base order ID
last_profile = SystemUserProfile.objects.order_by('-base_order').first()
base_order = (last_profile.base_order + 1) if last_profile else 1000
# Create system profile
system_profile = SystemUserProfile.objects.create(
mobile=mobile,
first_name=first_name,
last_name=last_name,
fullname=f"{first_name} {last_name}",
user=user,
base_order=base_order,
password=password,
national_id=national_id,
city=city,
province=province
)
# Create address for the user
address = SystemAddress.objects.create(
city=city,
province=province,
address=address_text,
postal_code=postal_code
)
# Assign role to the user
system_profile.role.add(group)
# Create wallet for the user
wallet = Wallet.objects.create()
return {
"system_profile": system_profile,
"address": address,
"wallet": wallet
}

View File

@@ -0,0 +1,21 @@
from ticket.helper import send_image_to_server
def upload_image(req=None, field=None):
if req.data[field] != "":
req.data[field] = send_image_to_server(req.data[field])
elif req.data[field] == "":
req.data[field] = "empty"
return req
def upload_listed_image(req=None, field=None):
image_list = []
if req.data[field] != []:
for item in req.data[field]:
image_list.append(send_image_to_server(item))
req.data.pop(field)
req.data[field] = image_list
elif req.data[field] == "":
req.data[field] = "empty"
return req

View File

@@ -0,0 +1,12 @@
from django.contrib.auth.models import User
from oauth2_provider.models import AccessToken
from datetime import timedelta
from datetime import datetime
def refresh(id):
user = User.objects.get(id=id)
access = AccessToken.objects.filter(user=user).last()
# access.expires = datetime.now() + timedelta(minutes=30)
# access.save()

View File

View File

@@ -0,0 +1,28 @@
from rest_framework import serializers
from authentication.models import UserMessage
from ..serializer.serializer import (
GroupSerializer,
SystemUserProfileSerializer
)
# سریالایزر مربوط به سیستم پیام کاربر
class UserMessageSerializer(serializers.ModelSerializer):
users = SystemUserProfileSerializer(required=False, many=True)
roles = GroupSerializer(required=False, many=True)
sender = SystemUserProfileSerializer(required=False)
class Meta:
model = UserMessage
exclude = (
'id',
'create_date',
'modify_date',
'trash',
'created_by',
'modified_by',
)
extra_kwargs = {
'link_text': {'required': False},
'link': {'required': False}
}

View File

@@ -0,0 +1,195 @@
from oauth2_provider.contrib.rest_framework import TokenHasReadWriteScope
from authentication.message.serializers import UserMessageSerializer
from panel.models import CheckState, OperatorLastTimeEnter
from authentication.sahandsms.sms import sms_reminder
from authentication.models import (
UserMessage,
UserProfile,
SendingMessageMethod,
UserMessageType, SystemUserProfile
)
from django.contrib.auth.models import Group
from rest_framework.response import Response
from notification.models import (
NotificationToken,
NotificationType,
Notification
)
from notification.najva import (
get_segments_detail,
send_notif_to_segments
)
from rest_framework import viewsets
from rest_framework import status
import random
import string
import os
from ticket.helper import send_image_to_server
# آدرس پایه ذخیره عکس مربوط به سیستم پیام کاربر در استوریج آروان
ARVAN_user_message_URL = 'https://profileimagedefault.s3.ir-thr-at1.arvanstorage.ir/'
# ویو ست کلی برای سیستم پیام کاربر که شامل ساخت و ویرایش و حذف می باشد
# برای ساخت چند حالت دارد که یا برای یک شخص ارسال میشه یا جند شخص یا یک نقش خاص
class UserMessageViewSet(viewsets.ModelViewSet):
queryset = UserMessage.objects.all()
serializer_class = UserMessageSerializer
permission_classes = [TokenHasReadWriteScope]
def create(self, request, *args, **kwargs):
try:
images = request.data['image']
request.data.pop('image')
except:
images = None
try:
roles = request.data['roles']
request.data.pop('roles')
except:
roles = None
try:
users = request.data['users']
request.data.pop('users')
except:
users = None
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
user_message = serializer.create(validated_data=request.data)
user_message.sender = SystemUserProfile.objects.get(user=request.user)
if roles == None:
pass
else:
for role in roles:
rol = Group.objects.get(name=role)
user_message.roles.add(rol)
if users == None and roles == None:
for user in SystemUserProfile.objects.all():
user_message.users.add(user)
elif users == None:
user_list = []
for rol in roles:
persons = SystemUserProfile.objects.filter(role__name=rol)
for user in persons:
user_list.append(user.key)
for user in user_list:
user = SystemUserProfile.objects.get(key__exact=user)
user_message.users.add(user)
else:
for user in users:
user = SystemUserProfile.objects.get(key__exact=user)
user_message.users.add(user)
if images == None:
pass
else:
pic = []
for image in images:
pic.append(send_image_to_server(image))
user_message.image = pic
user_message.save()
serializer = self.serializer_class(user_message)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def list(self, request, *args, **kwargs):
if 'sender' in request.GET:
queryset = UserMessage.objects.filter(
sender=SystemUserProfile.objects.get(user=request.user)
)
if 'receiver' in request.GET:
user_id = SystemUserProfile.objects.get(user_id__exact=request.user.id)
queryset = UserMessage.objects.filter(users=user_id)
serializer = UserMessageSerializer(queryset, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
def destroy(self, request, pk=None, *args, **kwargs):
user = SystemUserProfile.objects.get(user_id=request.user.id)
key = request.data['key']
queryset = UserMessage.objects.get(key__exact=key)
queryset.users.remove(user)
queryset.save()
return Response(status=status.HTTP_200_OK)
class SendingMessageMethodViewSet(viewsets.ModelViewSet):
queryset = SendingMessageMethod.objects.all()
permission_classes = [TokenHasReadWriteScope]
serializer_class = UserMessageViewSet
def create(self, request, *args, **kwargs):
if not SendingMessageMethod.objects.filter(level=request.data['level']):
SendingMessageMethod(
level=request.data['level'],
methods='/'.join(request.data['methods'])
).save()
return Response({'msg': 'Done'}, status=status.HTTP_200_OK)
return Response({'msg': 'Method Exist'}, status=status.HTTP_403_FORBIDDEN)
def update(self, request, *args, **kwargs):
method = SendingMessageMethod.objects.get(key__exact=request.data['key'])
method.level = request.data['level']
method.methods = '/'.join(request.data['methods'])
method.save()
return Response({'msg': 'Done'}, status=status.HTTP_200_OK)
class SendSMSViewSet(viewsets.ModelViewSet):
queryset = UserMessage.objects.all()
serializer_class = UserMessageSerializer
permission_classes = [TokenHasReadWriteScope]
def create(self, request, *args, **kwargs):
segments = []
usermessage = UserMessage()
usermessage.message_level = "sms"
if 'value' in request.data.keys():
for key in request.data['value']:
if UserProfile.objects.filter(key__exact=key):
segments.append(UserProfile.objects.get(key__exact=key))
if Group.objects.filter(name__exact=key):
for item in UserProfile.objects.filter(role__name__exact=key):
segments.append(item)
usermessage.message_type = UserMessageType.objects.get(name__exact=request.data['request_type'])
for i in segments:
sms_reminder(
receptor=i.mobile,
title=request.data['heading'],
content=request.data['message'],
link_text=request.data['link_text'],
link=request.data['link'],
time=request.data['time']
)
if not request.data['value']:
for item in UserProfile.objects.filter(role__name__exact="Poultry"):
sms_reminder(
receptor=item.mobile,
title=request.data['heading'],
content=request.data['message'],
link_text=request.data['link_text'],
link=request.data['link'],
time=request.data['time']
)
usermessage.heading = request.data['heading']
usermessage.message = request.data['message']
usermessage.link_text = request.data['link_text']
usermessage.link = request.data['link']
usermessage.time = request.data['time']
usermessage.save()
if 'value' in request.data.keys():
for key in request.data['value']:
if UserProfile.objects.filter(key__exact=key):
usermessage.users.add(UserProfile.objects.get(key__exact=key))
if Group.objects.filter(name__exact=key):
usermessage.roles.add(Group.objects.get(name__exact=key))
request.data.pop('value')
request.data.pop('request_type')
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
serializer.create(validated_data=request.data)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors)

View File

@@ -0,0 +1,373 @@
# Generated by Django 3.2.13 on 2023-01-02 10:55
import datetime
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import uuid
class Migration(migrations.Migration):
initial = True
dependencies = [
('auth', '0012_alter_user_first_name_max_length'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Address',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('title', models.CharField(default='', max_length=200, null=True)),
('country', models.CharField(default='', max_length=100, null=True)),
('province', models.CharField(default='', max_length=50, null=True)),
('city', models.CharField(default='', max_length=50, null=True)),
('address', models.CharField(max_length=300, null=True)),
('postal_code', models.CharField(default='', max_length=20, null=True)),
('breeding_unique_id', models.CharField(max_length=50, null=True)),
('phone', models.CharField(default='', max_length=20, null=True)),
('phone_type', models.CharField(default='', max_length=20, null=True)),
('no', models.CharField(default='', max_length=5, null=True)),
('floor', models.IntegerField(default=0, null=True)),
('unit', models.IntegerField(default=0, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='address_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='address_modifiedby', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='BankCard',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('name_of_bank_user', models.CharField(max_length=200, null=True)),
('bank_name', models.CharField(max_length=30, null=True)),
('card', models.CharField(max_length=16, null=True)),
('shaba', models.CharField(max_length=100, null=True)),
('account', models.CharField(max_length=50, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='bankcard_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='bankcard_modifiedby', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='City',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('name', models.CharField(max_length=200, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='city_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='city_modifiedby', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='PermissionLevel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('name', models.CharField(max_length=100, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='permissionlevel_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='permissionlevel_modifiedby', to=settings.AUTH_USER_MODEL)),
('role', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='group_permission', to='auth.group')),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='Province',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('name', models.CharField(max_length=200, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='province_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='province_modifiedby', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='SystemUserProfile',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('token', models.CharField(max_length=36, null=True)),
('fullname', models.CharField(max_length=150, null=True)),
('first_name', models.CharField(max_length=200, null=True)),
('last_name', models.CharField(max_length=200, null=True)),
('national_code', models.CharField(max_length=20, null=True)),
('national_id', models.CharField(max_length=20, null=True)),
('mobile', models.CharField(max_length=11, null=True)),
('birthday', models.CharField(max_length=20, null=True)),
('image', models.CharField(max_length=500, null=True)),
('password', models.CharField(max_length=100, null=True)),
('state', models.JSONField(default={'birthday': '', 'city': '', 'first_name': '', 'image': '', 'last_name': '', 'mobile': '', 'national_code': '', 'national_id': '', 'province': ''})),
('base_order', models.BigIntegerField(null=True)),
('access_level', models.ManyToManyField(related_name='user_permission_level', to='authentication.PermissionLevel')),
('city', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_city', to='authentication.city')),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='systemuserprofile_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='systemuserprofile_modifiedby', to=settings.AUTH_USER_MODEL)),
('province', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_province', to='authentication.province')),
('role', models.ManyToManyField(related_name='user_system_roles', to='auth.Group')),
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='system_user_profile_user', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='UserProfile',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('key', models.UUIDField(default=uuid.uuid4, null=True)),
('token', models.CharField(default='', max_length=36)),
('app_token', models.CharField(max_length=36, null=True)),
('company', models.CharField(max_length=30, null=True)),
('fullname', models.CharField(default='', max_length=150, null=True)),
('first_name', models.CharField(default='', max_length=200, null=True)),
('last_name', models.CharField(default='', max_length=200, null=True)),
('natinal_id', models.CharField(default='', max_length=10, null=True)),
('mobile', models.CharField(default='', max_length=11, null=True)),
('birthday', models.CharField(default='', max_length=20, null=True)),
('image', models.CharField(max_length=500, null=True)),
('state', models.CharField(default='register', max_length=20)),
('unit_name', models.CharField(max_length=100, null=True)),
('password', models.CharField(max_length=100, null=True)),
('gis_code', models.CharField(max_length=30, null=True)),
('operating_licence_capacity', models.BigIntegerField(default=0)),
('number_of_halls', models.IntegerField(default=0)),
('tenant', models.BooleanField(null=True)),
('person_type', models.CharField(max_length=10, null=True)),
('economic_code', models.CharField(max_length=30, null=True)),
('system_code', models.CharField(max_length=20, null=True)),
('epidemiological_code', models.CharField(max_length=20, null=True)),
('breeding_unique_id', models.CharField(max_length=20, null=True)),
('total_capacity', models.BigIntegerField(default=0)),
('licence_number', models.CharField(max_length=20, null=True)),
('health_certificate_number', models.CharField(max_length=20, null=True)),
('number_of_requests', models.BigIntegerField(default=0)),
('hatching_date', models.DateTimeField(default=datetime.datetime(2023, 1, 2, 10, 55, 11, 943664))),
('last_party_date', models.DateTimeField(default=datetime.datetime(2023, 1, 2, 10, 55, 11, 943712))),
('number_of_incubators', models.BigIntegerField(default=0)),
('herd_age_by_day', models.IntegerField(default=0)),
('herd_age_by_week', models.IntegerField(default=0)),
('number_of_party', models.IntegerField(default=0)),
('communication_type', models.CharField(max_length=30, null=True)),
('cooperative', models.CharField(max_length=50, null=True)),
('date_of_register', models.DateTimeField(default=datetime.datetime(2023, 1, 2, 10, 55, 11, 943861))),
('unit_status', models.CharField(max_length=20, null=True)),
('samasat_user_code', models.CharField(max_length=20, null=True)),
('base_order', models.BigIntegerField(null=True)),
('incubation_date', models.DateTimeField(null=True)),
('address', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_address', to='authentication.address')),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='userprofile_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='userprofile_modifiedby', to=settings.AUTH_USER_MODEL)),
('role', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_role', to='auth.group')),
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='users', to=settings.AUTH_USER_MODEL)),
('user_bank_info', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='bank_user', to='authentication.bankcard')),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='UserMessageType',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('name', models.CharField(choices=[('user', 'USER'), ('alluser', 'AllUSER'), ('group', 'GROUP'), ('allgroup', 'AllGROUP'), ('usergroup', 'UserGroup'), ('province_accept', 'ProvinceAccept'), ('province_rejected', 'ProvinceRejected'), ('city_operator_accept', 'CityOperatorAccept'), ('city_operator_rejected', 'CityOperatorRejected'), ('assignment_accepted', 'AssignmentAccepted'), ('assignment_rejected', 'AssignmentRejected')], default='', max_length=50, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='usermessagetype_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='usermessagetype_modifiedby', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='UserMessage',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('heading', models.CharField(default='', max_length=100, null=True)),
('message', models.TextField(default='', max_length=500, null=True)),
('link_text', models.CharField(max_length=150, null=True)),
('link', models.CharField(max_length=100, null=True)),
('image', models.JSONField(default=dict, null=True)),
('expire', models.DateTimeField(default=datetime.datetime(2023, 1, 2, 11, 55, 11, 951506))),
('time', models.DateTimeField(default=datetime.datetime(2023, 1, 2, 10, 55, 11, 951545))),
('state', models.CharField(default='pending', max_length=20)),
('message_level', models.CharField(max_length=50, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='usermessage_createdby', to=settings.AUTH_USER_MODEL)),
('message_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='message_type', to='authentication.usermessagetype')),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='usermessage_modifiedby', to=settings.AUTH_USER_MODEL)),
('roles', models.ManyToManyField(blank=True, related_name='user_roles', to='auth.Group')),
('sender', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='message_sender', to='authentication.systemuserprofile')),
('users', models.ManyToManyField(blank=True, related_name='user_message', to='authentication.SystemUserProfile')),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='Tenant',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('fullname', models.CharField(max_length=50, null=True)),
('national_code', models.CharField(max_length=20, null=True)),
('birthday', models.CharField(max_length=50, null=True)),
('rental', models.CharField(max_length=30, null=True)),
('tracking_code', models.CharField(max_length=30, null=True)),
('rent_date_from', models.CharField(max_length=30, null=True)),
('rent_date_to', models.CharField(max_length=30, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='tenant_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='tenant_modifiedby', to=settings.AUTH_USER_MODEL)),
('userprofile', models.ManyToManyField(related_name='tenant_user', to='authentication.UserProfile')),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='SystemAddress',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('address', models.CharField(max_length=300, null=True)),
('postal_code', models.CharField(default='', max_length=20, null=True)),
('breeding_unique_id', models.CharField(max_length=50, null=True)),
('phone', models.CharField(default='', max_length=20, null=True)),
('phone_type', models.CharField(default='', max_length=20, null=True)),
('no', models.CharField(default='', max_length=5, null=True)),
('floor', models.IntegerField(default=0, null=True)),
('unit', models.IntegerField(default=0, null=True)),
('city', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='city_address', to='authentication.city')),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='systemaddress_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='systemaddress_modifiedby', to=settings.AUTH_USER_MODEL)),
('province', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='province_address', to='authentication.province')),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='SendingMessageMethod',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('level', models.CharField(max_length=50, null=True)),
('methods', models.CharField(max_length=150, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sendingmessagemethod_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sendingmessagemethod_modifiedby', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='MultiRole',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('address', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='multi_role_address', to='authentication.address')),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='multirole_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='multirole_modifiedby', to=settings.AUTH_USER_MODEL)),
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='multi_role_users', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='GeoPoint',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('name', models.CharField(max_length=100, null=True)),
('lang', models.CharField(max_length=50, null=True)),
('lat', models.CharField(max_length=50, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='geopoint_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='geopoint_modifiedby', to=settings.AUTH_USER_MODEL)),
('userprofile', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='geo_user', to='authentication.userprofile')),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='CityUnit',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('name', models.CharField(max_length=200, null=True)),
('city', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='city_province', to='authentication.city')),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cityunit_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cityunit_modifiedby', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
migrations.AddField(
model_name='city',
name='province',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='city_province', to='authentication.province'),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-02-21 12:24
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 2, 21, 13, 24, 53, 729672)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 2, 21, 12, 24, 53, 729739)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 2, 21, 12, 24, 53, 719578)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 2, 21, 12, 24, 53, 719270)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 2, 21, 12, 24, 53, 719338)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-05-16 00:59
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0002_auto_20230221_1224'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 5, 16, 1, 58, 59, 918083)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 5, 16, 0, 58, 59, 918116)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 5, 16, 0, 58, 59, 911463)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 5, 16, 0, 58, 59, 911304)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 5, 16, 0, 58, 59, 911371)),
),
]

View File

@@ -0,0 +1,44 @@
# Generated by Django 3.2.13 on 2023-06-28 15:49
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0003_auto_20230516_0059'),
]
operations = [
migrations.AddField(
model_name='city',
name='province_center',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 6, 28, 16, 49, 38, 658086)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 6, 28, 15, 49, 38, 658122)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 6, 28, 15, 49, 38, 651705)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 6, 28, 15, 49, 38, 651582)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 6, 28, 15, 49, 38, 651614)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-07-20 15:09
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0004_auto_20230628_1549'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 20, 16, 9, 49, 620587)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 20, 15, 9, 49, 620621)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 20, 15, 9, 49, 614308)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 20, 15, 9, 49, 614189)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 20, 15, 9, 49, 614220)),
),
]

View File

@@ -0,0 +1,141 @@
# Generated by Django 3.2.13 on 2023-07-23 12:23
import datetime
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import uuid
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('authentication', '0005_auto_20230720_1509'),
]
operations = [
migrations.AddField(
model_name='bankcard',
name='user_bank_id_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='city',
name='city_id_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='city',
name='province_id_foreign_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='cityunit',
name='city_id_foreign_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='cityunit',
name='city_unit_id_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='province',
name='province_id_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='systemaddress',
name='address_id_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='systemaddress',
name='city_id_foreign_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='systemaddress',
name='province_id_foreign_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='active',
field=models.BooleanField(default=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='city_id_foreign_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='national_code_image',
field=models.CharField(max_length=500, null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='province_id_foreign_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='system_user_profile_id_key',
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='user_django_id_foreign_key',
field=models.IntegerField(null=True),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 23, 13, 23, 4, 508100)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 23, 12, 23, 4, 508134)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 23, 12, 23, 4, 501660)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 23, 12, 23, 4, 501509)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 23, 12, 23, 4, 501549)),
),
migrations.CreateModel(
name='Log',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('function_name', models.CharField(max_length=200, null=True)),
('duration', models.FloatField(null=True)),
('status', models.IntegerField(null=True)),
('response', models.TextField(null=True)),
('request', models.TextField(null=True)),
('request_body', models.TextField(null=True)),
('response_body', models.TextField(null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='log_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='log_modifiedby', to=settings.AUTH_USER_MODEL)),
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='log_user', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
]

View File

@@ -0,0 +1,129 @@
# Generated by Django 3.2.13 on 2023-07-25 11:18
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0006_auto_20230723_1223'),
]
operations = [
migrations.AddField(
model_name='city',
name='city_name',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='city',
name='city_number',
field=models.IntegerField(default=0),
),
migrations.AddField(
model_name='city',
name='province_name',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='city',
name='province_number',
field=models.IntegerField(default=0),
),
migrations.AddField(
model_name='cityunit',
name='city_name',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='cityunit',
name='city_number',
field=models.IntegerField(default=0),
),
migrations.AddField(
model_name='cityunit',
name='province_name',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='cityunit',
name='province_number',
field=models.IntegerField(default=0),
),
migrations.AddField(
model_name='province',
name='province_name',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='province',
name='province_number',
field=models.IntegerField(default=0),
),
migrations.AddField(
model_name='systemaddress',
name='city_name',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='systemaddress',
name='city_number',
field=models.IntegerField(default=0),
),
migrations.AddField(
model_name='systemaddress',
name='province_name',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='systemaddress',
name='province_number',
field=models.IntegerField(default=0),
),
migrations.AddField(
model_name='systemuserprofile',
name='city_name',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='city_number',
field=models.IntegerField(default=0),
),
migrations.AddField(
model_name='systemuserprofile',
name='province_name',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='province_number',
field=models.IntegerField(default=0),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 25, 12, 18, 38, 793852)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 25, 11, 18, 38, 793922)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 25, 11, 18, 38, 787305)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 25, 11, 18, 38, 787009)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 25, 11, 18, 38, 787092)),
),
]

View File

@@ -0,0 +1,44 @@
# Generated by Django 3.2.13 on 2023-07-25 23:20
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0007_auto_20230725_1118'),
]
operations = [
migrations.AddField(
model_name='bankcard',
name='province_name',
field=models.CharField(max_length=50, null=True),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 26, 0, 20, 32, 698666)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 25, 23, 20, 32, 698701)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 25, 23, 20, 32, 692829)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 25, 23, 20, 32, 692694)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 7, 25, 23, 20, 32, 692725)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-08-06 22:14
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0008_auto_20230725_2320'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 8, 6, 23, 14, 20, 824785)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 8, 6, 22, 14, 20, 824847)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 8, 6, 22, 14, 20, 814989)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 8, 6, 22, 14, 20, 814713)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 8, 6, 22, 14, 20, 814769)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-08-27 15:49
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0009_auto_20230806_2214'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 8, 27, 16, 49, 49, 344678)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 8, 27, 15, 49, 49, 344713)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 8, 27, 15, 49, 49, 337830)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 8, 27, 15, 49, 49, 337682)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 8, 27, 15, 49, 49, 337713)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-09-02 09:08
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0010_auto_20230827_1549'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 9, 2, 10, 8, 8, 875747)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 9, 2, 9, 8, 8, 875780)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 9, 2, 9, 8, 8, 869482)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 9, 2, 9, 8, 8, 869180)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 9, 2, 9, 8, 8, 869356)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-09-24 19:34
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0011_auto_20230902_0908'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 9, 24, 20, 34, 43, 788477)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 9, 24, 19, 34, 43, 788477)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 9, 24, 19, 34, 43, 782484)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 9, 24, 19, 34, 43, 782484)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 9, 24, 19, 34, 43, 782484)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-10-10 14:57
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0012_auto_20230924_1934'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 10, 10, 15, 57, 48, 148587)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 10, 10, 14, 57, 48, 148587)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 10, 10, 14, 57, 48, 148587)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 10, 10, 14, 57, 48, 148587)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 10, 10, 14, 57, 48, 148587)),
),
]

View File

@@ -0,0 +1,74 @@
# Generated by Django 3.2.13 on 2023-11-12 15:31
import datetime
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import uuid
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('authentication', '0013_auto_20231010_1457'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 16, 31, 13, 508690)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 31, 13, 508690)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 31, 13, 504690)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 31, 13, 504690)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 31, 13, 504690)),
),
migrations.CreateModel(
name='ExternalTransaction',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('date', models.DateTimeField(auto_now_add=True)),
('amount', models.BigIntegerField(default=0)),
('status', models.CharField(default='pending', max_length=100)),
('transaction_type', models.CharField(max_length=100, null=True)),
('payer', models.CharField(max_length=100, null=True)),
('description', models.CharField(default=False, max_length=200)),
('is_complete', models.BooleanField(default=False)),
('message', models.TextField(null=True)),
('saleReferenceId', models.CharField(max_length=100, null=True)),
('refId', models.CharField(max_length=100, null=True)),
('orderId', models.CharField(max_length=100, null=True)),
('cardHolderPan', models.CharField(max_length=100, null=True)),
('receiver_role', models.CharField(max_length=100, null=True)),
('creator_role', models.CharField(max_length=100, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='externaltransaction_createdby', to=settings.AUTH_USER_MODEL)),
('creator', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='creator_user', to='authentication.systemuserprofile')),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='externaltransaction_modifiedby', to=settings.AUTH_USER_MODEL)),
('receiver', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='receiver_user', to='authentication.systemuserprofile')),
],
options={
'abstract': False,
},
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-11-24 16:49
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0014_auto_20231112_1531'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 11, 24, 17, 49, 7, 198843)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 11, 24, 16, 49, 7, 198843)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 11, 24, 16, 49, 7, 198843)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 11, 24, 16, 49, 7, 198843)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 11, 24, 16, 49, 7, 198843)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-12-05 15:37
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0015_auto_20231124_1649'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 5, 16, 36, 57, 181789)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 5, 15, 36, 57, 181789)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 5, 15, 36, 57, 181789)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 5, 15, 36, 57, 181789)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 5, 15, 36, 57, 181789)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-12-10 14:14
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0016_auto_20231205_1537'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 10, 15, 14, 35, 557836)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 10, 14, 14, 35, 557836)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 10, 14, 14, 35, 553835)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 10, 14, 14, 35, 553835)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 10, 14, 14, 35, 553835)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-12-11 20:28
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0017_auto_20231210_1414'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 11, 21, 28, 20, 856169)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 11, 20, 28, 20, 856169)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 11, 20, 28, 20, 856169)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 11, 20, 28, 20, 856169)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 11, 20, 28, 20, 856169)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2023-12-14 15:40
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0018_auto_20231211_2028'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 14, 16, 40, 15, 957882)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 14, 15, 40, 15, 957882)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 14, 15, 40, 15, 949882)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 14, 15, 40, 15, 949882)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2023, 12, 14, 15, 40, 15, 949882)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-01-07 13:06
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0019_auto_20231214_1540'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 7, 14, 6, 8, 717480)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 7, 13, 6, 8, 717480)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 7, 13, 6, 8, 697479)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 7, 13, 6, 8, 696479)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 7, 13, 6, 8, 696479)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-01-08 12:19
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0020_auto_20240107_1306'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 8, 13, 19, 15, 280863)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 8, 12, 19, 15, 280863)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 8, 12, 19, 15, 266428)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 8, 12, 19, 15, 266428)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 8, 12, 19, 15, 266428)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-01-09 23:16
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0021_auto_20240108_1219'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 10, 0, 16, 32, 161351)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 9, 23, 16, 32, 161351)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 9, 23, 16, 32, 153359)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 9, 23, 16, 32, 153359)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 9, 23, 16, 32, 153359)),
),
]

View File

@@ -0,0 +1,45 @@
# Generated by Django 3.2.13 on 2024-01-31 14:50
import datetime
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('authentication', '0022_auto_20240109_2316'),
]
operations = [
migrations.AddField(
model_name='externaltransaction',
name='kill_house_user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='transaction_kill_house_user', to='authentication.systemuserprofile'),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 31, 15, 50, 43, 309900)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 31, 14, 50, 43, 309900)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 31, 14, 50, 43, 304905)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 31, 14, 50, 43, 304905)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 1, 31, 14, 50, 43, 304905)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-02-20 15:33
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0023_auto_20240131_1450'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 2, 20, 16, 33, 17, 744683)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 2, 20, 15, 33, 17, 744683)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 2, 20, 15, 33, 17, 740683)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 2, 20, 15, 33, 17, 740683)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 2, 20, 15, 33, 17, 740683)),
),
]

View File

@@ -0,0 +1,61 @@
# Generated by Django 3.2.13 on 2024-04-07 09:42
import datetime
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import uuid
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('authentication', '0024_auto_20240220_1533'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 10, 41, 57, 122518)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 9, 41, 57, 122518)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 9, 41, 57, 117521)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 9, 41, 57, 117521)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 9, 41, 57, 117521)),
),
migrations.CreateModel(
name='UserMessageSend',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, null=True, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('message', models.TextField(max_length=500, null=True)),
('receive_code', models.CharField(max_length=400, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='usermessagesend_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='usermessagesend_modifiedby', to=settings.AUTH_USER_MODEL)),
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='authentication.systemuserprofile')),
],
options={
'abstract': False,
},
),
]

View File

@@ -0,0 +1,44 @@
# Generated by Django 3.2.13 on 2024-04-07 10:10
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0025_auto_20240407_0942'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 11, 10, 47, 142056)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 10, 10, 47, 142056)),
),
migrations.AlterField(
model_name='usermessagesend',
name='message',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 10, 10, 47, 137057)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 10, 10, 47, 137057)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 10, 10, 47, 137057)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-04-16 15:13
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0026_auto_20240407_1010'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 16, 16, 13, 31, 84711)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 16, 15, 13, 31, 84711)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 16, 15, 13, 31, 80658)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 16, 15, 13, 31, 80658)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 16, 15, 13, 31, 80658)),
),
]

View File

@@ -0,0 +1,44 @@
# Generated by Django 3.2.13 on 2024-04-17 14:45
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0027_auto_20240416_1513'),
]
operations = [
migrations.AddField(
model_name='externaltransaction',
name='type',
field=models.CharField(max_length=100, null=True),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 17, 15, 45, 5, 584153)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 17, 14, 45, 5, 584153)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 17, 14, 45, 5, 580154)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 17, 14, 45, 5, 580154)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 17, 14, 45, 5, 580154)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-04-20 00:56
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0028_auto_20240417_1445'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 20, 1, 56, 33, 333993)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 20, 0, 56, 33, 333993)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 20, 0, 56, 33, 328991)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 20, 0, 56, 33, 328991)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 20, 0, 56, 33, 328991)),
),
]

View File

@@ -0,0 +1,44 @@
# Generated by Django 3.2.13 on 2024-04-27 15:18
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0029_auto_20240420_0056'),
]
operations = [
migrations.AddField(
model_name='externaltransaction',
name='amount_with_tax',
field=models.BigIntegerField(default=0),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 27, 16, 18, 38, 488904)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 27, 15, 18, 38, 488904)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 27, 15, 18, 38, 485902)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 27, 15, 18, 38, 484902)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 4, 27, 15, 18, 38, 484902)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-05-13 16:02
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0030_auto_20240427_1518'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 13, 17, 1, 27, 100385)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 13, 16, 1, 27, 101388)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 13, 16, 1, 27, 89384)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 13, 16, 1, 27, 89384)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 13, 16, 1, 27, 89384)),
),
]

View File

@@ -0,0 +1,45 @@
# Generated by Django 3.2.13 on 2024-05-16 15:07
import datetime
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('authentication', '0031_auto_20240513_1602'),
]
operations = [
migrations.AddField(
model_name='externaltransaction',
name='chain_company_user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='transaction_chain_company_user', to='authentication.systemuserprofile'),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 16, 16, 7, 10, 727872)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 16, 15, 7, 10, 727872)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 16, 15, 7, 10, 724872)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 16, 15, 7, 10, 723872)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 16, 15, 7, 10, 723872)),
),
]

View File

@@ -0,0 +1,74 @@
# Generated by Django 3.2.13 on 2024-05-18 09:31
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0032_auto_20240516_1507'),
]
operations = [
migrations.AddField(
model_name='externaltransaction',
name='city_share',
field=models.BigIntegerField(default=0),
),
migrations.AddField(
model_name='externaltransaction',
name='company_share',
field=models.BigIntegerField(default=0),
),
migrations.AddField(
model_name='externaltransaction',
name='guilds_share',
field=models.BigIntegerField(default=0),
),
migrations.AddField(
model_name='externaltransaction',
name='other_share',
field=models.BigIntegerField(default=0),
),
migrations.AddField(
model_name='externaltransaction',
name='pay_type',
field=models.CharField(max_length=200, null=True),
),
migrations.AddField(
model_name='externaltransaction',
name='union_share',
field=models.BigIntegerField(default=0),
),
migrations.AddField(
model_name='externaltransaction',
name='wallet_share',
field=models.BigIntegerField(default=0),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 18, 10, 31, 44, 972754)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 18, 9, 31, 44, 972754)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 18, 9, 31, 44, 968755)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 18, 9, 31, 44, 968755)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 18, 9, 31, 44, 968755)),
),
]

View File

@@ -0,0 +1,44 @@
# Generated by Django 3.2.13 on 2024-05-27 15:01
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0033_auto_20240518_0931'),
]
operations = [
migrations.AddField(
model_name='systemuserprofile',
name='user_gate_way_id',
field=models.CharField(max_length=6, null=True, unique=True),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 27, 16, 1, 27, 197755)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 27, 15, 1, 27, 197755)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 27, 15, 1, 27, 194754)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 27, 15, 1, 27, 193754)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 5, 27, 15, 1, 27, 193754)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-06-20 15:08
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0034_auto_20240527_1501'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 6, 20, 16, 8, 17, 312598)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 6, 20, 15, 8, 17, 312598)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 6, 20, 15, 8, 17, 308592)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 6, 20, 15, 8, 17, 308592)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 6, 20, 15, 8, 17, 308592)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-07-13 15:41
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0035_auto_20240620_1508'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 7, 13, 16, 41, 53, 79894)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 7, 13, 15, 41, 53, 79894)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 7, 13, 15, 41, 53, 75893)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 7, 13, 15, 41, 53, 75893)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 7, 13, 15, 41, 53, 75893)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-08-03 14:51
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0036_auto_20240713_1541'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 8, 3, 15, 51, 6, 476019)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 8, 3, 14, 51, 6, 476019)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 8, 3, 14, 51, 6, 472019)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 8, 3, 14, 51, 6, 472019)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 8, 3, 14, 51, 6, 472019)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-08-20 10:56
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0037_auto_20240803_1451'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 8, 20, 11, 56, 39, 741305)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 8, 20, 10, 56, 39, 741305)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 8, 20, 10, 56, 39, 735305)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 8, 20, 10, 56, 39, 735305)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 8, 20, 10, 56, 39, 735305)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-11-02 08:56
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0038_auto_20240820_1056'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 11, 2, 9, 56, 13, 901535)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 11, 2, 8, 56, 13, 901535)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 11, 2, 8, 56, 13, 901535)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 11, 2, 8, 56, 13, 901535)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 11, 2, 8, 56, 13, 901535)),
),
]

View File

@@ -0,0 +1,183 @@
# Generated by Django 3.2.13 on 2024-11-30 19:23
import datetime
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import uuid
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('authentication', '0039_auto_20241102_0856'),
]
operations = [
migrations.CreateModel(
name='Notice',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('title', models.CharField(max_length=1000, null=True)),
('text', models.TextField(null=True)),
('users', models.JSONField(null=True)),
('read_users', models.JSONField(null=True)),
('unread_users', models.JSONField(null=True)),
('images', models.JSONField(null=True)),
('roles', models.JSONField(null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notice_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notice_modifiedby', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
migrations.AddField(
model_name='city',
name='product_price',
field=models.FloatField(default=0),
),
migrations.AddField(
model_name='externaltransaction',
name='temporary_deleted',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='externaltransaction',
name='temporary_trash',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='address',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='bankcard',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='city',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='cityunit',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='externaltransaction',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='geopoint',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='log',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='multirole',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='permissionlevel',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='province',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='sendingmessagemethod',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='systemaddress',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='systemuserprofile',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='tenant',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 11, 30, 20, 23, 12, 616098)),
),
migrations.AlterField(
model_name='usermessage',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 11, 30, 19, 23, 12, 616098)),
),
migrations.AlterField(
model_name='usermessagesend',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='usermessagetype',
name='key',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 11, 30, 19, 23, 12, 612089)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 11, 30, 19, 23, 12, 612089)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 11, 30, 19, 23, 12, 612089)),
),
migrations.CreateModel(
name='UserNoticeInfo',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('trash', models.BooleanField(default=False)),
('seen', models.BooleanField(default=False)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='usernoticeinfo_createdby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='usernoticeinfo_modifiedby', to=settings.AUTH_USER_MODEL)),
('notice', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_notice', to='authentication.notice')),
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notice_users', to='authentication.systemuserprofile')),
],
options={
'abstract': False,
},
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-12-08 15:08
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0040_auto_20241130_1923'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 12, 8, 16, 8, 52, 205816)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 12, 8, 15, 8, 52, 205816)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 12, 8, 15, 8, 52, 205816)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 12, 8, 15, 8, 52, 205816)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 12, 8, 15, 8, 52, 205816)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2024-12-28 11:00
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0041_auto_20241208_1508'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2024, 12, 28, 12, 0, 1, 533912)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2024, 12, 28, 11, 0, 1, 533912)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2024, 12, 28, 11, 0, 1, 518759)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2024, 12, 28, 11, 0, 1, 518759)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2024, 12, 28, 11, 0, 1, 518759)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-01-12 19:15
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0042_auto_20241228_1100'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 12, 20, 15, 5, 809531)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 12, 19, 15, 5, 809531)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 12, 19, 15, 5, 806527)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 12, 19, 15, 5, 806527)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 12, 19, 15, 5, 806527)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-01-18 17:48
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0043_auto_20250112_1915'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 18, 18, 47, 54, 230758)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 18, 17, 47, 54, 230758)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 18, 17, 47, 54, 226756)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 18, 17, 47, 54, 226756)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 18, 17, 47, 54, 226756)),
),
]

View File

@@ -0,0 +1,79 @@
# Generated by Django 3.2.13 on 2025-01-21 09:25
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0044_auto_20250118_1748'),
]
operations = [
migrations.AddField(
model_name='systemuserprofile',
name='unit_address',
field=models.TextField(null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='unit_city',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='unit_economical_number',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='unit_name',
field=models.CharField(max_length=500, null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='unit_national_id',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='unit_postal_code',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='unit_province',
field=models.CharField(max_length=100, null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='unit_registration_number',
field=models.CharField(max_length=100, null=True),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 21, 10, 25, 4, 488177)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 21, 9, 25, 4, 488177)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 21, 9, 25, 4, 488177)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 21, 9, 25, 4, 488177)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 1, 21, 9, 25, 4, 488177)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-02-01 12:23
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0045_auto_20250121_0925'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 2, 1, 13, 23, 32, 115749)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 2, 1, 12, 23, 32, 115749)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 2, 1, 12, 23, 32, 112749)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 2, 1, 12, 23, 32, 112749)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 2, 1, 12, 23, 32, 112749)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-03-04 19:07
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0046_auto_20250201_1223'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 20, 7, 42, 188326)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 7, 42, 188326)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 7, 42, 184328)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 7, 42, 184328)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 7, 42, 184328)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-03-04 19:08
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0047_auto_20250304_1907'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 20, 8, 15, 555236)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 8, 15, 555236)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 8, 15, 551238)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 8, 15, 551238)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 8, 15, 551238)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-03-04 19:10
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0048_auto_20250304_1908'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 20, 10, 3, 807350)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 10, 3, 807350)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 10, 3, 803350)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 10, 3, 803350)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 4, 19, 10, 3, 803350)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-03-09 21:43
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0049_auto_20250304_1910'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 9, 22, 43, 5, 407972)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 9, 21, 43, 5, 407972)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 9, 21, 43, 5, 403977)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 9, 21, 43, 5, 403977)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 3, 9, 21, 43, 5, 403977)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-05-27 11:13
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0050_auto_20250309_2143'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 12, 12, 40, 893555)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 11, 12, 40, 893555)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 11, 12, 40, 893555)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 11, 12, 40, 893555)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 11, 12, 40, 893555)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-05-27 12:04
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0051_auto_20250527_1113'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 13, 4, 9, 222175)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 12, 4, 9, 222175)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 12, 4, 9, 222175)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 12, 4, 9, 222175)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 12, 4, 9, 222175)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-05-28 14:39
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0052_auto_20250527_1204'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 28, 15, 36, 32, 652782)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 28, 14, 36, 32, 652782)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 28, 14, 36, 32, 483042)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 28, 14, 36, 32, 483042)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 5, 28, 14, 36, 32, 483042)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-06-01 10:41
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0053_auto_20250528_1439'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 6, 1, 11, 41, 22, 144328)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 6, 1, 10, 41, 22, 144328)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 6, 1, 10, 41, 22, 140568)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 6, 1, 10, 41, 22, 140568)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 6, 1, 10, 41, 22, 140568)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-09-01 16:50
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0054_auto_20250601_1041'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 9, 1, 17, 50, 37, 643178)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 9, 1, 16, 50, 37, 643178)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 9, 1, 16, 50, 37, 643178)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 9, 1, 16, 50, 37, 643178)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 9, 1, 16, 50, 37, 643178)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-09-20 13:21
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0055_auto_20250901_1650'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 9, 20, 14, 21, 19, 155145)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 9, 20, 13, 21, 19, 155145)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 9, 20, 13, 21, 19, 152153)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 9, 20, 13, 21, 19, 151155)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 9, 20, 13, 21, 19, 152153)),
),
]

View File

@@ -0,0 +1,54 @@
# Generated by Django 3.2.13 on 2025-11-04 20:03
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0056_auto_20250920_1321'),
]
operations = [
migrations.AddField(
model_name='systemuserprofile',
name='father_name',
field=models.CharField(max_length=200, null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='gender',
field=models.CharField(max_length=20, null=True),
),
migrations.AddField(
model_name='systemuserprofile',
name='is_alive',
field=models.BooleanField(null=True),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 11, 4, 21, 2, 47, 941652)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 11, 4, 20, 2, 47, 941652)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 11, 4, 20, 2, 47, 938641)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 11, 4, 20, 2, 47, 938641)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 11, 4, 20, 2, 47, 938641)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-12-08 10:20
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0057_auto_20251104_2003'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 8, 11, 17, 18, 53643)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 8, 10, 17, 18, 53643)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 8, 10, 17, 18, 49645)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 8, 10, 17, 18, 49645)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 8, 10, 17, 18, 49645)),
),
]

View File

@@ -0,0 +1,44 @@
# Generated by Django 3.2.13 on 2025-12-13 16:30
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0058_auto_20251208_1020'),
]
operations = [
migrations.AddField(
model_name='systemuserprofile',
name='pos',
field=models.BooleanField(default=True),
),
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 13, 17, 29, 59, 947402)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 13, 16, 29, 59, 947402)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 13, 16, 29, 59, 943021)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 13, 16, 29, 59, 943021)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 13, 16, 29, 59, 943021)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-12-14 16:22
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0059_auto_20251213_1630'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 14, 17, 21, 53, 641934)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 14, 16, 21, 53, 641934)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 14, 16, 21, 53, 635913)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 14, 16, 21, 53, 635913)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 14, 16, 21, 53, 635913)),
),
]

View File

@@ -0,0 +1,39 @@
# Generated by Django 3.2.13 on 2025-12-17 16:36
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0060_auto_20251214_1622'),
]
operations = [
migrations.AlterField(
model_name='usermessage',
name='expire',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 17, 17, 36, 5, 356512)),
),
migrations.AlterField(
model_name='usermessage',
name='time',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 17, 16, 36, 5, 356512)),
),
migrations.AlterField(
model_name='userprofile',
name='date_of_register',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 17, 16, 36, 5, 351993)),
),
migrations.AlterField(
model_name='userprofile',
name='hatching_date',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 17, 16, 36, 5, 351993)),
),
migrations.AlterField(
model_name='userprofile',
name='last_party_date',
field=models.DateTimeField(default=datetime.datetime(2025, 12, 17, 16, 36, 5, 351993)),
),
]

View File

548
authentication/models.py Normal file
View File

@@ -0,0 +1,548 @@
import string
import random
from django.contrib.postgres.fields import ArrayField
from django.db import models
from django.contrib.auth.models import User, Group
from django.conf import settings
from datetime import datetime, timezone, time, timedelta
from django.utils import timezone
import uuid
# مدل پایه که تمامی مدل ها در سیستم ازین مدل ارث بری می کنند
from general_urls import base_user_gate_way_id
class BaseModel(models.Model):
key = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
create_date = models.DateTimeField(auto_now_add=True)
modify_date = models.DateTimeField(auto_now=True)
created_by = models.ForeignKey(
settings.AUTH_USER_MODEL,
related_name="%(class)s_createdby",
on_delete=models.CASCADE,
null=True,
blank=True,
)
modified_by = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name="%(class)s_modifiedby",
null=True,
blank=True,
)
trash = models.BooleanField(default=False)
class Meta:
abstract = True
# مدل استان برای ذخیره استان استفاده میشود
class Province(BaseModel):
name = models.CharField(max_length=200, null=True)
province_id_key = models.IntegerField(null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(Province, self).save(*args, **kwargs)
# مدل شهرستان برای ذخیره شهرستان استفاده میشود
class City(BaseModel):
province = models.ForeignKey(
Province, on_delete=models.CASCADE, related_name="city_province", null=True
)
province_id_foreign_key = models.IntegerField(null=True)
city_id_key = models.IntegerField(null=True)
name = models.CharField(max_length=200, null=True)
product_price = models.FloatField(default=0)
province_center = models.BooleanField(default=False)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(City, self).save(*args, **kwargs)
# مدل زیربخش شهرستان برای ذخیره زیربخش شهرستان استفاده میشود
class CityUnit(BaseModel):
city = models.ForeignKey(
City, on_delete=models.CASCADE, related_name="city_province", null=True
)
city_id_foreign_key = models.IntegerField(null=True)
city_unit_id_key = models.IntegerField(null=True)
name = models.CharField(max_length=200, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(CityUnit, self).save(*args, **kwargs)
class PermissionLevel(BaseModel):
role = models.ForeignKey(
Group,
on_delete=models.CASCADE,
null=True,
related_name='group_permission'
)
name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(PermissionLevel, self).save(*args, **kwargs)
# مدل آدرس برای ذخیره آدرس استفاده میشود
class SystemAddress(BaseModel):
province = models.ForeignKey(
Province,
on_delete=models.CASCADE,
related_name="province_address",
null=True
)
city = models.ForeignKey(
City,
on_delete=models.CASCADE,
related_name="city_address",
null=True
)
province_id_foreign_key = models.IntegerField(null=True)
city_id_foreign_key = models.IntegerField(null=True)
address_id_key = models.IntegerField(null=True)
address = models.CharField(max_length=300, null=True)
postal_code = models.CharField(max_length=20, default="", null=True)
breeding_unique_id = models.CharField(max_length=50, null=True)
phone = models.CharField(max_length=20, default="", null=True)
phone_type = models.CharField(max_length=20, default="", null=True)
no = models.CharField(max_length=5, default="", null=True)
floor = models.IntegerField(default=0, null=True)
unit = models.IntegerField(default=0, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(SystemAddress, self).save(*args, **kwargs)
# مدل آدرس برای ذخیره آدرس استفاده میشود
class Address(BaseModel):
title = models.CharField(max_length=200, default="", null=True)
country = models.CharField(max_length=100, default="", null=True)
province = models.CharField(max_length=50, default="", null=True)
city = models.CharField(max_length=50, default="", null=True)
address = models.CharField(max_length=300, null=True)
postal_code = models.CharField(max_length=20, default="", null=True)
breeding_unique_id = models.CharField(max_length=50, null=True)
phone = models.CharField(max_length=20, default="", null=True)
phone_type = models.CharField(max_length=20, default="", null=True)
no = models.CharField(max_length=5, default="", null=True)
floor = models.IntegerField(default=0, null=True)
unit = models.IntegerField(default=0, null=True)
def save(self, *args, **kwargs):
super(Address, self).save(*args, **kwargs)
# مدل اطلاعات بانکی برای ذخیره اطلاعات جساب شخص استفاده میشود
class BankCard(BaseModel):
name_of_bank_user = models.CharField(max_length=200, null=True)
bank_name = models.CharField(max_length=30, null=True)
card = models.CharField(max_length=16, null=True)
shaba = models.CharField(max_length=100, null=True)
account = models.CharField(max_length=50, null=True)
user_bank_id_key = models.IntegerField(null=True)
province_name = models.CharField(max_length=50, null=True)
# state = models.CharField(max_length=30, null=True)
class MultiRole(BaseModel):
user = models.ForeignKey(
User, on_delete=models.CASCADE, related_name="multi_role_users", null=True
)
address = models.ForeignKey(
Address,
on_delete=models.CASCADE,
related_name='multi_role_address',
null=True
)
def save(self, *args, **kwargs):
super(MultiRole, self).save(*args, **kwargs)
# مدل پروفایل کاربری برای ذخیره پروفایل کاربری شخص استفاده میشود
class SystemUserProfile(BaseModel):
token = models.CharField(max_length=36, null=True)
user_gate_way_id = models.CharField(max_length=6,null=True, unique=True)
user = models.ForeignKey(
User, on_delete=models.CASCADE, related_name="system_user_profile_user", null=True
)
province = models.ForeignKey(
Province,
on_delete=models.CASCADE,
related_name='user_province',
null=True
)
city = models.ForeignKey(
City,
on_delete=models.CASCADE,
related_name='user_city',
null=True
)
user_django_id_foreign_key = models.IntegerField(null=True)
province_id_foreign_key = models.IntegerField(null=True)
city_id_foreign_key = models.IntegerField(null=True)
system_user_profile_id_key = models.IntegerField(null=True)
fullname = models.CharField(max_length=150, null=True)
first_name = models.CharField(max_length=200, null=True)
last_name = models.CharField(max_length=200, null=True)
father_name = models.CharField(max_length=200, null=True)
gender = models.CharField(max_length=20, null=True)
is_alive = models.BooleanField(null=True)
national_code = models.CharField(max_length=20, null=True)
national_code_image = models.CharField(max_length=500, null=True)
national_id = models.CharField(max_length=20, null=True)
mobile = models.CharField(max_length=11, null=True)
birthday = models.CharField(max_length=20, null=True)
image = models.CharField(max_length=500, null=True)
password = models.CharField(max_length=100, null=True)
active = models.BooleanField(default=True)
state = models.JSONField(
default={
"province": "",
"city": "",
"first_name": "",
"last_name": "",
"national_code": "",
"national_id": "",
"mobile": "",
"birthday": "",
"image": ""
}
)
access_level = models.ManyToManyField(
PermissionLevel,
related_name="user_permission_level"
)
role = models.ManyToManyField(
Group,
related_name='user_system_roles'
)
base_order = models.BigIntegerField(null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
unit_name = models.CharField(max_length=500, null=True)
unit_national_id = models.CharField(max_length=100, null=True)
unit_registration_number = models.CharField(max_length=100, null=True)
unit_economical_number = models.CharField(max_length=100, null=True)
unit_province = models.CharField(max_length=100, null=True)
unit_city = models.CharField(max_length=100, null=True)
unit_postal_code = models.CharField(max_length=100, null=True)
unit_address = models.TextField(null=True)
pos = models.BooleanField(default=True)
def save(self, *args, **kwargs):
if self.user_gate_way_id is None:
while (True):
res = ''.join(random.choices(string.ascii_lowercase + string.digits, k=5))
res = base_user_gate_way_id + res
if not SystemUserProfile.objects.filter(user_gate_way_id=res).exists():
break
self.user_gate_way_id=res
super(SystemUserProfile, self).save(*args, **kwargs)
# مدل پروفایل کاربری برای ذخیره پروفایل کاربری شخص استفاده میشود
class UserProfile(BaseModel):
key = models.UUIDField(default=uuid.uuid4, editable=True, null=True)
token = models.CharField(max_length=36, default="")
app_token = models.CharField(max_length=36, null=True)
user = models.ForeignKey(
User, on_delete=models.CASCADE, related_name="users", null=True
)
company = models.CharField(max_length=30, null=True)
address = models.ForeignKey(
Address,
on_delete=models.CASCADE,
related_name='user_address',
null=True
)
role = models.ForeignKey(
Group,
on_delete=models.CASCADE,
null=True,
related_name='user_role'
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="bank_user",
null=True
)
fullname = models.CharField(max_length=150, null=True, default="")
first_name = models.CharField(max_length=200, null=True, default="")
last_name = models.CharField(max_length=200, null=True, default="")
natinal_id = models.CharField(max_length=10, null=True, default="")
mobile = models.CharField(max_length=11, null=True, default="")
birthday = models.CharField(max_length=20, null=True, default="")
image = models.CharField(max_length=500, null=True)
state = models.CharField(max_length=20, default="register")
unit_name = models.CharField(max_length=100, null=True)
password = models.CharField(max_length=100, null=True)
gis_code = models.CharField(max_length=30, null=True)
operating_licence_capacity = models.BigIntegerField(default=0)
number_of_halls = models.IntegerField(default=0)
tenant = models.BooleanField(null=True)
person_type = models.CharField(max_length=10, null=True)
economic_code = models.CharField(max_length=30, null=True)
system_code = models.CharField(max_length=20, null=True)
epidemiological_code = models.CharField(max_length=20, null=True)
breeding_unique_id = models.CharField(max_length=20, null=True)
total_capacity = models.BigIntegerField(default=0)
licence_number = models.CharField(max_length=20, null=True)
health_certificate_number = models.CharField(max_length=20, null=True)
number_of_requests = models.BigIntegerField(default=0)
hatching_date = models.DateTimeField(default=timezone.now())
last_party_date = models.DateTimeField(default=timezone.now())
number_of_incubators = models.BigIntegerField(default=0)
herd_age_by_day = models.IntegerField(default=0)
herd_age_by_week = models.IntegerField(default=0)
number_of_party = models.IntegerField(default=0)
communication_type = models.CharField(max_length=30, null=True)
cooperative = models.CharField(max_length=50, null=True)
date_of_register = models.DateTimeField(default=timezone.now())
unit_status = models.CharField(max_length=20, null=True)
samasat_user_code = models.CharField(max_length=20, null=True)
base_order = models.BigIntegerField(null=True)
incubation_date = models.DateTimeField(null=True)
def save(self, *args, **kwargs):
# if self.first_name != None and self.last_name != None:
# self.fullname = self.first_name + " " + self.last_name
super(UserProfile, self).save(*args, **kwargs)
# مدل نقاط جغرافیایی برای ذخیره نقاط طولی و عرضی آدرس استفاده میشود
class GeoPoint(BaseModel):
userprofile = models.ForeignKey(
UserProfile,
on_delete=models.CASCADE,
related_name="geo_user",
null=True
)
name = models.CharField(max_length=100, null=True)
lang = models.CharField(max_length=50, null=True)
lat = models.CharField(max_length=50, null=True)
class Tenant(BaseModel):
userprofile = models.ManyToManyField(
UserProfile,
related_name="tenant_user",
)
fullname = models.CharField(max_length=50, null=True)
national_code = models.CharField(max_length=20, null=True)
birthday = models.CharField(max_length=50, null=True)
rental = models.CharField(max_length=30, null=True)
tracking_code = models.CharField(max_length=30, null=True)
rent_date_from = models.CharField(max_length=30, null=True)
rent_date_to = models.CharField(max_length=30, null=True)
class UserMessageType(BaseModel):
message_types = (
("user", "USER"),
("alluser", "AllUSER"),
("group", "GROUP"),
("allgroup", "AllGROUP"),
("usergroup", "UserGroup"),
("province_accept", "ProvinceAccept"),
("province_rejected", "ProvinceRejected"),
("city_operator_accept", "CityOperatorAccept"),
("city_operator_rejected", "CityOperatorRejected"),
("assignment_accepted", "AssignmentAccepted"),
("assignment_rejected", "AssignmentRejected"),
)
name = models.CharField(choices=message_types, max_length=50, default="", null=True)
def __str__(self) -> str:
return self.name
def save(self, *args, **kwargs):
super(UserMessageType, self).save(*args, **kwargs)
pass
# مدل پیام کاربر برای ذخیره پیام کاربر استفاده میشود
class UserMessage(BaseModel):
roles = models.ManyToManyField(
Group,
blank=True,
related_name="user_roles"
)
users = models.ManyToManyField(
SystemUserProfile,
blank=True,
related_name="user_message"
)
sender = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="message_sender",
null=True
)
heading = models.CharField(max_length=100, null=True, default="")
message = models.TextField(max_length=500, null=True, default="")
link_text = models.CharField(max_length=150, null=True)
link = models.CharField(max_length=100, null=True)
image = models.JSONField(default=dict, null=True)
expire = models.DateTimeField(default=datetime.now() + timedelta(hours=1))
time = models.DateTimeField(default=datetime.now())
state = models.CharField(max_length=20, default="pending")
message_type = models.ForeignKey(
UserMessageType,
on_delete=models.CASCADE,
null=True,
related_name="message_type"
)
message_level = models.CharField(max_length=50, null=True)
def save(self, *args, **kwargs):
super(UserMessage, self).save(*args, **kwargs)
class SendingMessageMethod(BaseModel):
level = models.CharField(max_length=50, null=True)
methods = models.CharField(max_length=150, null=True)
def save(self, *args, **kwargs):
super(SendingMessageMethod, self).save(*args, **kwargs)
class Log(BaseModel):
user = models.ForeignKey(
User, on_delete=models.CASCADE, related_name="log_user", null=True
)
function_name = models.CharField(max_length=200, null=True)
duration = models.FloatField(null=True)
status = models.IntegerField(null=True)
response = models.TextField(null=True)
request = models.TextField(null=True)
request_body = models.TextField(null=True)
response_body = models.TextField(null=True)
def save(self, *args, **kwargs):
super(Log, self).save(*args, **kwargs)
class ExternalTransaction(BaseModel):
date = models.DateTimeField(auto_now_add=True)
amount = models.BigIntegerField(default=0)
amount_with_tax = models.BigIntegerField(default=0)
status = models.CharField(max_length=100, default='pending')
transaction_type = models.CharField(max_length=100, null=True)
type = models.CharField(max_length=100, null=True)
payer = models.CharField(max_length=100, null=True)
description = models.CharField(max_length=200, default=False)
is_complete = models.BooleanField(default=False)
message = models.TextField(null=True)
saleReferenceId = models.CharField(max_length=100, null=True)
refId = models.CharField(max_length=100, null=True)
orderId = models.CharField(max_length=100, null=True)
cardHolderPan = models.CharField(max_length=100, null=True)
receiver_role = models.CharField(max_length=100, null=True)
creator_role = models.CharField(max_length=100, null=True)
kill_house_user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
null=True,
related_name="transaction_kill_house_user"
)
chain_company_user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
null=True,
related_name="transaction_chain_company_user"
)
receiver = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
null=True,
related_name="receiver_user"
)
creator = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
null=True,
related_name="creator_user"
)
union_share = models.BigIntegerField(default=0)
company_share = models.BigIntegerField(default=0)
guilds_share = models.BigIntegerField(default=0)
city_share = models.BigIntegerField(default=0)
wallet_share = models.BigIntegerField(default=0)
other_share = models.BigIntegerField(default=0)
pay_type = models.CharField(max_length=200, null=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(ExternalTransaction, self).save(*args, **kwargs)
class UserMessageSend(BaseModel):
user = models.ForeignKey(SystemUserProfile, on_delete=models.CASCADE, null=True)
message = models.TextField(null=True)
receive_code = models.CharField(max_length=400, null=True)
def save(self, *args, **kwargs):
super(UserMessageSend, self).save(*args, **kwargs)
class Notice(BaseModel):
title = models.CharField(max_length=1000, null=True)
text = models.TextField(null=True)
users = models.JSONField(null=True)
read_users = models.JSONField(null=True)
unread_users = models.JSONField(null=True)
images = models.JSONField(null=True)
roles = models.JSONField(null=True)
def save(self, *args, **kwargs):
super(Notice, self).save(*args, **kwargs)
class UserNoticeInfo(BaseModel):
notice = models.ForeignKey(
Notice,
related_name="user_notice",
on_delete=models.CASCADE,
null=True
)
user = models.ForeignKey(
SystemUserProfile,
related_name="notice_users",
on_delete=models.CASCADE,
null=True
)
seen = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(UserNoticeInfo, self).save(*args, **kwargs)

View File

@@ -0,0 +1,75 @@
# ویوست و توابعی که برای ایجاد سطج دستزسی جدید در سیستم استفاده میشوند
from django.contrib.auth.models import Group
from oauth2_provider.contrib.rest_framework import TokenHasScope, TokenHasReadWriteScope
from rest_framework import viewsets, serializers, status
from rest_framework.permissions import IsAuthenticated
from . import permissions
from rest_framework.response import Response
import logging
log = logging.getLogger(__name__)
class GroupSerializer(serializers.ModelSerializer):
class Meta:
model = Group
fields = ['name']
class GroupPermissionViewset(viewsets.ModelViewSet):
authentication_classes = []
permission_classes = [TokenHasReadWriteScope]
queryset = Group.objects.all()
serializer_class = GroupSerializer
def get_queryset(self):
queryset = super(GroupPermissionViewset, self).get_queryset()
log.error(f"here {self.request.user}")
return queryset
def list(self, request, *args, **kwargs):
queryset = super(GroupPermissionViewset, self).get_queryset()
log.error(f"here {request.user}")
serializer = GroupSerializer(queryset, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
def create(self, request, *args, **kwargs):
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
serializer.create(validated_data=request.data)
return Response(serializer.data)
return Response(serializer.errors)
def retrieve(self, request, pk=None, *args, **kwargs):
key = request.GET['name']
log.error(f"here {request.user}")
queryset = super(GroupPermissionViewset, self).get_queryset()
queryset = queryset.get(name__exact=key)
serializer = self.serializer_class(queryset)
return Response(serializer.data, status=status.HTTP_200_OK)
def update(self, request, pk=None, *args, **kwargs):
key = request.GET['name']
queryset = super(GroupPermissionViewset, self).get_queryset()
queryset = queryset.get(name__exact=key)
serializer = self.serializer_class(queryset)
serializer.update(instance=queryset, validated_data=request.data)
return Response(serializer.data, status=status.HTTP_200_OK)
def partial_update(self, request, pk=None, *args, **kwargs):
pass
def destroy(self, request, pk=None, *args, **kwargs):
key = request.GET['name']
queryset = super(GroupPermissionViewset, self).get_queryset()
queryset = queryset.get(name__exact=key)
queryset.delete()
queryset.save()
return Response(status=status.HTTP_200_OK)

View File

@@ -0,0 +1,329 @@
# ویوست ها و توابعی که برای ایجاد سطج دستزسی جدید در سیستم استفاده میشوند
from rest_framework.permissions import BasePermission, DjangoModelPermissions
# from django.utils.datetime_safe import datetime
from authentication.models import UserProfile
from django.contrib.auth.models import Group
from datetime import timedelta, datetime
from rest_framework import permissions
from django.utils import timezone
class IsAuthenticatedOrCreate(permissions.IsAuthenticated):
def has_permission(self, request, view):
if request.method == 'POST':
return True
return super(IsAuthenticatedOrCreate, self).has_permission(request, view)
class IsOwner(permissions.BasePermission):
message = "Not an owner."
def has_object_permission(self, request, view, obj):
if request.method in permissions.SAFE_METHODS:
return True
return request.user == obj.created_by
class AuthorOrReadOnly(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.is_authenticated:
return True
return False
def has_object_permission(self, request, view, obj):
if obj.author == request.user:
return True
return False
class AuthenticatedOnly(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
if request.user.is_authenticated:
return True
return False
class AuthorAllStaffAllButEditOrReadOnly(permissions.BasePermission):
edit_methods = ("PUT", "PATCH")
def has_permission(self, request, view):
if request.user.is_authenticated:
return True
def has_object_permission(self, request, view, obj):
if request.user.is_superuser:
return True
if request.method in permissions.SAFE_METHODS:
return True
if obj.author == request.user:
return True
if request.user.is_staff and request.method not in self.edit_methods:
return True
return False
class ExpiredObjectSuperuserOnly(permissions.BasePermission):
message = "This object is expired." # custom error message
def object_expired(self, obj):
expired_on = timezone.make_aware(datetime.now() - timedelta(minutes=10))
return obj.created < expired_on
def has_object_permission(self, request, view, obj):
if self.object_expired(obj) and not request.user.is_superuser:
return False
else:
return True
class IsStaff(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.is_staff:
return True
return False
def has_object_permission(self, request, view, obj):
if request.user.is_staff:
return True
return False
class IsOwner2(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.is_authenticated:
return True
return False
def has_object_permission(self, request, view, obj):
if obj.author == request.user:
return True
return False
class IsFinancesMember(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="Finances").exists():
return True
class IsCustomer(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="Customer").exists():
return True
class IsOperator(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="Operator").exists():
return True
class IsSaler(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="Saler").exists():
return True
class IsSupervisor(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="Supervisor").exists():
return True
class IsStorekeeper(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="Storekeeper").exists():
return True
class IsDeliveryMember(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="Delivery").exists():
return True
class IsAdminMember(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="Admin").exists():
return True
class IsChatRoomOperator(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="ChatRoomOperator").exists():
return True
class IsInformationOperator(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="InformationOperator").exists():
return True
class IsFinanceUnitOperator(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="FinancialUnitOperator").exists():
return True
class IsFinanceUnitAdmin(permissions.BasePermission):
def has_permission(self, request, view):
if request.user.groups.filter(name="FinancialUnitAdmin").exists():
return True
class IsSuperUser(BasePermission):
def has_permission(self, request, view):
return request.user and request.user.is_superuser
class CityOperator(BasePermission):
def has_permission(self, request, view):
if UserProfile.objects.filter(user__exact=request.user, role__name__exact="CityOperator").exists():
return True
else:
return False
class ProvinceOperator(BasePermission):
def has_permission(self, request, view):
if UserProfile.objects.filter(user__exact=request.user, role__name__exact="ProvinceOperator").exists():
return True
class Poultry(BasePermission):
def has_permission(self, request, view):
if UserProfile.objects.filter(user__exact=request.user, role__exact="Poultry").exists():
return True
class KillHouseOperator(BasePermission):
def has_permission(self, request, view):
if UserProfile.objects.filter(user__exact=request.user, role__exact="KillHouseOperator").exists():
return True
class OwnerOrModelPermission(DjangoModelPermissions):
def __same_user(self, obj, request):
from django.contrib.auth.models import User
return isinstance(obj, User) and obj.id == request.user.id
def __is_owner(self, obj, request):
return hasattr(obj, 'owner') and obj.owner is not None and self.__same_user(obj.owner, request)
def has_permission(self, request, view):
return request.user.is_superuser or DjangoModelPermissions().has_permission(request, view)
def has_object_permission(self, request, view, obj):
return request.user.is_superuser or self.__same_user(
obj, request) or self.__is_owner(
obj, request) or DjangoModelPermissions().has_object_permission(request, view, obj)
class PaymentRequiredPermission(DjangoModelPermissions):
def can_operate(self, request):
return request.user.has_paid()
def has_permission(self, request, view):
return self.can_operate(request)
def has_object_permission(self, request, view, obj):
return self.can_operate(request)
class IsUser(BasePermission):
def has_permission(self, request, view):
return request.user and request.user.is_superuser
def has_object_permission(self, request, view, obj):
return request.user.is_superuser or obj.user.id == request.user.id
class APIPermission(permissions.BasePermission):
message = 'Only API user can access APIs'
group_name = "api"
def has_permission(self, request, view):
try:
group = request.user.groups.get(name=self.group_name)
except Group.DoesNotExist:
self.message = "Permission denied, user group '{}' does not exists".format(self.group_name)
return False
return group.name == self.group_name
def _is_in_group(user, group_name):
"""
Takes a user and a group name, and returns `True` if the user is in that group.
"""
try:
return Group.objects.get(name=group_name).user_set.filter(id=user.id).exists()
except Group.DoesNotExist:
return None
def _has_group_permission(user, required_groups):
return any([_is_in_group(user, group_name) for group_name in required_groups])
class IsLoggedInUserOrAdmin(permissions.BasePermission):
# group_name for super admin
required_groups = ['admin']
def has_object_permission(self, request, view, obj):
has_group_permission = _has_group_permission(request.user, self.required_groups)
if self.required_groups is None:
return False
return obj == request.user or has_group_permission
class IsAdminUser(permissions.BasePermission):
# group_name for super admin
required_groups = ['admin']
def has_permission(self, request, view):
has_group_permission = _has_group_permission(request.user, self.required_groups)
return request.user and has_group_permission
def has_object_permission(self, request, view, obj):
has_group_permission = _has_group_permission(request.user, self.required_groups)
return request.user and has_group_permission
class IsAdminOrAnonymousUser(permissions.BasePermission):
required_groups = ['admin', 'anonymous']
def has_permission(self, request, view):
has_group_permission = _has_group_permission(request.user, self.required_groups)
return request.user and has_group_permission

4445
authentication/register.py Normal file

File diff suppressed because it is too large Load Diff

View File

View File

@@ -0,0 +1,588 @@
# توابع مورد نیاز برای اتصال به ای پی آی سهند اس ام اس
from panel.helper import check_mobile_number
from ..models import SystemUserProfile
import requests
USERNAME_SMS='markazi'
PASSWORD_SMS='markazi1403'
USERNAME_SMS_FINANCIAL='markazi'
PASSWORD_SMS_FINANCIAL='markazi1403'
USERNAME_SMS_HAMEDAN='markazi'
PASSWORD_SMS_HAMEDAN='markazi1403'
OUT_SMS_USER='mirani95'
OUT_SMS_PASS='136895'
kill_house_price=21000
def test():
user = SystemUserProfile.objects.all()
for i in user:
if i.id > 9:
if i.first_name != None:
first = i.first_name
else:
first = ""
if i.last_name != None:
last = i.last_name
else:
last = ""
i.fullname = first + " " + last
i.save()
print("Done")
# این تابع برای ارسال پیامک نام کاربری و پسوورد برای مرعدار استفاده میشود
def send_sms(receptor=None, rand=None):
url = 'https://km.ravandno.ir'
receptor = str(receptor)
user = SystemUserProfile.objects.get(id=1825)
mobile = receptor
password = rand
message = '\n' \
'اتحادیه مرغ گوشتی استان کرمانشاه' \
'\n' \
'\n' \
'از این پس کلیه امور کشتاراز طریق سامانه سبحان انجام میگردد.' \
'\n' \
'\n' \
'لینک ورود به سامانه:' \
'\n' \
'\t\t\t{0}' \
'\n' \
'\n' \
'شماره همراه:\t{1}' \
'\n' \
'\n' \
'رمز عبور:\t{2}' \
'\n' \
'\n' \
'هرگونه فروش مرغ بدون اطلاع اتحادیه و خارج از سامانه ذکر شده پیگرد قانونی دارد و مجوز جوجه ریزی صادر نخواهد شد.'.format(
url,
mobile,
password)
check_mobile = check_mobile_number(mobile)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
mobile, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text, user.fullname, user.mobile, user.password)
def send_sms_2(receptor=None, rand=None):
users = SystemUserProfile.objects.filter(role__name='Poultry')
receptor = str(receptor)
for user in users:
url = 'https://sha.ravandno.ir'
message = '\n' \
'مرغدار محترم:' \
'\n' \
'{0}' \
'\n' \
'\n' \
'از این پس کلیه امور کشتاراز طریق سامانه رصدیار انجام میگردد.' \
'\n' \
'\n' \
'لینک ورود به سامانه:' \
'\n' \
'\t\t\t{1}' \
'\n' \
'\n' \
'شماره همراه:\t{2}' \
'\n' \
'\n' \
'رمز عبور:\t{3}' \
'\n' \
'\n' \
'هرگونه فروش مرغ بدون اطلاع اتحادیه و خارج از سامانه ذکر شده پیگرد قانونی دارد و مجوز جوجه ریزی صادر نخواهد شد.' \
'\n' \
'\n' \
'اتحادیه مرغ گوشتی'.format(
user.fullname,
url,
user.mobile,
user.password)
check_mobile = check_mobile_number(user.mobile)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
user.mobile, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(user.mobile + " " + user.fullname + " " + "Done")
# این تابع برای ارسال پیامک نام کاربری و پسوورد برای کشتارگاه استفاده میشود
def send_sms_kill_house(receptor=None, rand=None):
users = SystemUserProfile.objects.filter(role__name='KillHouse')
receptor = str(receptor)
for user in users:
url = 'https://sha.ravandno.ir'
# time.sleep(2)
message = '\n' \
'کشتارگاه دار محترم:' \
'\n' \
'{0}' \
'\n' \
'\n' \
'از این پس کلیه امور کشتاراز طریق سامانه رصدیار انجام میگردد.' \
'\n' \
'\n' \
'لینک ورود به سامانه:' \
'\n' \
'\t\t\t{1}' \
'\n' \
'\n' \
'شماره همراه:\t{2}' \
'\n' \
'\n' \
'رمز عبور:\t{3}' \
'\n' \
'\n' \
'هرگونه خرید مرغ بدون اطلاع اتحادیه و خارج از سامانه ذکر شده پیگرد قانونی دارد.' \
'\n' \
'\n' \
'اتحادیه مرغ گوشتی'.format(
user.fullname,
url,
user.mobile,
user.password)
check_mobile = check_mobile_number(user.mobile)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
user.mobile, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(user.mobile + " " + user.fullname + " " + "Done")
# این تابع برای ارسال پیامک نام کاربری و پسوورد برای اپراتور استان استفاده میشود
def send_sms_province(receptor=None, rand=None):
url = 'https://sha.ravandno.ir'
receptor = str(receptor)
message = '\n' \
'اتحادیه مرغ گوشتی استان لرستان' \
'\n' \
'\n' \
'از این پس کلیه امور کشتاراز طریق سامانه رصدیار انجام میگردد.' \
'\n' \
'\n' \
'لینک ورود به سامانه:' \
'\n' \
'\t\t\t{0}' \
'\n' \
'\n' \
'شماره همراه:\t{1}' \
'\n' \
'\n' \
'رمز عبور:\t{2}' \
'\n' \
'\n' \
'هرگونه خرید و فروش مرغ بدون اطلاع اتحادیه شهرستان و استان و خارج از سامانه ذکر شده پیگرد قانونی دارد.'.format(
url,
receptor,
rand)
check_mobile = check_mobile_number(receptor)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
receptor, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
# این تابع برای ارسال پیامک نام کاربری و پسوورد برای اپراتور شهرستان استفاده میشود
def send_sms_city(receptor, rand):
url = 'https://ravandno.ir'
receptor = str(receptor)
message = '\n' \
'اتحادیه مرغ گوشتی استان لرستان' \
'\n' \
'\n' \
'از این پس کلیه امور کشتاراز طریق سامانه سبحان انجام میگردد.' \
'\n' \
'\n' \
'لینک ورود به سامانه:' \
'\n' \
'\t\t\t{0}' \
'\n' \
'\n' \
'شماره همراه:\t{1}' \
'\n' \
'\n' \
'رمز عبور:\t{2}' \
'\n' \
'\n' \
'هرگونه خرید و فروش مرغ بدون اطلاع اتحادیه شهرستان و استان و خارج از سامانه ذکر شده پیگرد قانونی دارد.'.format(
url,
receptor,
rand)
check_mobile = check_mobile_number(receptor)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
receptor, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
# این تابع برای ارسال کد پیامکی (ا تی پی ) به کاربر استفاده میشود
def send_otp_code(receptor, rand):
receptor = str(receptor)
message = 'سلام همراه عزیز کد پیامکی ارسالی برای شما :{}'.format(rand)
check_mobile = check_mobile_number(receptor)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
receptor, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload, verify=False)
print(response.text)
# این تابع برای ارسال پسورد به کاربر استفاده میشود
def send_password(receptor, rand):
receptor = str(receptor)
message = 'سلام همراه عزیز پسورد ارسالی برای شما :{}'.format(rand)
check_mobile = check_mobile_number(receptor)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from" \
"=30002501&to={}&message={}".format(receptor, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
def sms_reminder(receptor, title, content, link_text, link, time):
receptor = str(receptor)
message = "\n{4}\n{3}\n{2}\n{1}\n{0}".format(title, content, link_text, link, time)
check_mobile = check_mobile_number(receptor)
if check_mobile:
url = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=" \
"Aht00100&from=30002501&to={}&message={}".format(receptor, message)
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
return response
def price_reminder(receptor, fullname):
receptor = str(receptor)
message = 'کاربر گرامی {} 2 ساعت تا شزوع روز بعد باقی است لطفا قیمت های روز بعد را وارد نمایید'.format(fullname)
check_mobile = check_mobile_number(receptor)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
receptor, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
# این تابع برای ارسال اطلاعات بار تخصیصی به کشتارگاه برای راننده استفاده میشود
def driver_sms(driver_mobile, drive_rname, quantity, poultry, barcode, province, city, address, date, time, kill_house):
message = ' راننده گرامی {0}\nحواله بار {1} قطعه مرغ\n با بارکد: {2}\nاز مرغدار:{3}\nبه آدرس:{4}, {5},{6} در تاریخ {7} با بازه زمانی{8} جهت {9} به شما تخصیص داده شده است.\nنسبت به حمل آن اقدام نمایید.'.format(
drive_rname, quantity, barcode, poultry, province, city, address, date, time, kill_house)
check_mobile = check_mobile_number(driver_mobile)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
driver_mobile, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
def send(receptor):
receptor = str(receptor)
message = 'کاربر گرامی آقای امیدی از درخواست کشتار 9000 قطعه شما \n 3000 قطعه به کشتارگاه پرطلایی \n 3000 قطعه به کشتارگاه افلاک \n 3000 قطعه به کشتارگاه پرند\n تخصیص داده شده است نسبت به تحویل بار به این واحد ها اقدام نمایید\n اطلاعات تکمیلی را در پنل سامانه سبحان مشاهده نمایید '
check_mobile = check_mobile_number(receptor)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
receptor, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
def send_2(receptor):
receptor = str(receptor)
message = ''
check_mobile = check_mobile_number(receptor)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
receptor, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
def sms_for_tabriz(receptor):
users = SystemUserProfile.objects.filter(role__name='KillHouse')
receptor = str(receptor)
for user in users:
url = 'https://sha.ravandno.ir'
message = '\n' \
'کشتارگاه دار محترم:' \
'\n' \
'{0}' \
'\n' \
'\n' \
'از این پس کلیه امور کشتاراز طریق سامانه رصدیار انجام میگردد.' \
'\n' \
'\n' \
'لینک ورود به سامانه:' \
'\n' \
'\t\t\t{1}' \
'\n' \
'\n' \
'شماره همراه:\t{2}' \
'\n' \
'\n' \
'رمز عبور:\t{3}' \
'\n' \
'\n' \
'هرگونه خرید مرغ بدون اطلاع اتحادیه و خارج از سامانه ذکر شده پیگرد قانونی دارد.' \
'\n' \
'\n' \
'اتحادیه مرغ گوشتی استان آذربایجان شرقی'.format(
user.fullname,
url,
user.mobile,
user.password)
check_mobile = check_mobile_number(user.mobile)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
user.mobile, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(user.mobile + " " + user.fullname + " " + "Done")
def send_sms_for_jahad(receptor=None, rand=None):
users = SystemUserProfile.objects.filter(role__name='Jahad')
receptor = str(receptor)
for user in users:
url = 'https://sha.ravandno.ir'
message = '\n' \
'ناظر محترم جهاد استان:' \
'\n' \
'{0}' \
'\n' \
'\n' \
'از این پس کلیه امور کشتار مرغ گوشتی از طریق سامانه رصدیار انجام میگردد.' \
'\n' \
'\n' \
'لینک ورود به سامانه:' \
'\n' \
'\t\t\t{1}' \
'\n' \
'\n' \
'شماره همراه:\t{2}' \
'\n' \
'\n' \
'رمز عبور:\t{3}' \
'\n' \
'\n' \
'جهت راه اندازی سامانه نیاز به همکاری شما دوستان در برطرف کردن مشکلات احتمالی می باشیم.' \
'\n' \
'\n' \
'باتشکر مدیریت سامانه رصدیار'.format(
user.fullname,
url,
user.mobile,
user.password)
check_mobile = check_mobile_number(user.mobile)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
user.mobile, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(user.mobile + " " + user.fullname + " " + "Done")
def send_sms_for_province(receptor=None, rand=None):
users = SystemUserProfile.objects.filter(role__name='ProvinceOperator')
receptor = str(receptor)
for user in users:
url = 'https://sha.ravandno.ir'
message = '\n' \
'اپراتور محترم:' \
'\n' \
'{0}' \
'\n' \
'\n' \
'از این پس کلیه امور کشتار مرغ گوشتی از طریق سامانه رصدیار انجام میگردد.' \
'\n' \
'\n' \
'لینک ورود به سامانه:' \
'\n' \
'\t\t\t{1}' \
'\n' \
'\n' \
'شماره همراه:\t{2}' \
'\n' \
'\n' \
'رمز عبور:\t{3}' \
'\n' \
'\n' \
'هرگونه خرید و فروش مرغ خارج از سامانه ذکر شده پیگرد قانونی دارد.'.format(
user.fullname,
url,
user.mobile,
user.password)
check_mobile = check_mobile_number(user.mobile)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
user.mobile, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(user.mobile + " " + user.fullname + " " + "Done")
def send_sms_for_city(receptor=None, rand=None):
users = SystemUserProfile.objects.filter(role__name='CityOperator')
receptor = str(receptor)
for user in users:
url = 'https://sha.ravandno.ir'
message = '\n' \
'اپراتور محترم:' \
'\n' \
'{0}' \
'\n' \
'\n' \
'از این پس کلیه امور کشتار مرغ گوشتی از طریق سامانه رصدیار انجام میگردد.' \
'\n' \
'\n' \
'لینک ورود به سامانه:' \
'\n' \
'\t\t\t{1}' \
'\n' \
'\n' \
'شماره همراه:\t{2}' \
'\n' \
'\n' \
'رمز عبور:\t{3}' \
'\n' \
'\n' \
'هرگونه خرید و فروش مرغ خارج از سامانه ذکر شده پیگرد قانونی دارد.'.format(
user.fullname,
url,
user.mobile,
user.password)
check_mobile = check_mobile_number(user.mobile)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
user.mobile, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(user.mobile + " " + user.fullname + " " + "Done")
def send_sms_for_vet(receptor=None, rand=None):
users = SystemUserProfile.objects.filter(role__name__in=('VetFarm','KillHouseVet'))
receptor = str(receptor)
for user in users:
url = 'https://sha.ravandno.ir'
message = '\n' \
'دامپزشک محترم:' \
'\n' \
'{0}' \
'\n' \
'\n' \
'از این پس کلیه امور کشتاراز طریق سامانه رصدیار انجام میگردد.' \
'\n' \
'\n' \
'لینک ورود به سامانه:' \
'\n' \
'\t\t\t{1}' \
'\n' \
'\n' \
'شماره همراه:\t{2}' \
'\n' \
'\n' \
'رمز عبور:\t{3}' \
'\n' \
'\n' \
'هرگونه خرید و فروش مرغ بدون اطلاع اتحادیه و خارج از سامانه ذکر شده پیگرد قانونی دارد.' \
'\n' \
'\n' \
'اتحادیه مرغ گوشتی'.format(
user.fullname,
url,
user.mobile,
user.password)
check_mobile = check_mobile_number(user.mobile)
if check_mobile:
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
user.mobile, message)
url = u.format()
payload = {}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.request("GET", url, headers=headers, data=payload)
print(user.mobile + " " + user.fullname + " " + "Done")

View File

View File

@@ -0,0 +1,308 @@
from django.contrib.auth.models import User, Group
from django.db.models import Q
from authentication.models import (
UserProfile,
Address,
BankCard,
SystemUserProfile,
PermissionLevel, ExternalTransaction
)
from rest_framework import serializers
from authentication.permission_views import GroupSerializer
from authentication.serializers import SystemAddressSerializer, UserSerializer, ProvinceSerializer, CitySerializer
from panel.models import KillHouse, WagePayment, ProvinceKillRequest
# سریالایزر مربوط به مدل آدرس
class AddressSerializer(serializers.ModelSerializer):
class Meta:
model = Address
fields = [
'key',
'title',
'country',
'province',
'city',
'address',
'postal_code',
'breeding_unique_id',
'phone',
'phone_type',
'no',
'floor',
'unit',
]
def create(self, validated_data):
return Address.objects.create(**validated_data)
# سریالایزر مربوط به مدل اطلاعات بانکی
class BankCardSerializer(serializers.ModelSerializer):
class Meta:
model = BankCard
exclude = (
'id',
'create_date',
'modify_date',
'trash',
'created_by',
'modified_by',
)
extra_kwargs = {
'name_of_bank_user': {'required': False, 'allow_null': True},
'bank_name': {'required': False, 'allow_null': True},
'card': {'required': False, 'allow_null': True},
'shaba': {'required': False, 'allow_null': True},
'account': {'required': False, 'allow_null': True},
}
# سریالایزر مربوط به مدل کاربر
class UserProfileSerializer(serializers.ModelSerializer):
user_bank_info = BankCardSerializer(read_only=True)
address = AddressSerializer(read_only=True)
role = GroupSerializer(read_only=True)
job = serializers.SerializerMethodField('get_job')
def get_job(self, instance):
# if instance.role.name == 'Poultry':
# pass
# if instance.role.name == 'CityOperator':
# pass
# if instance.role.name == 'ProvinceOperator':
# pass
if instance.role.name == 'KillHouse':
kill_house = KillHouse.objects.get(user=instance).name
return kill_house
else:
return None
class Meta:
model = UserProfile
fields = [
'key',
'create_date',
# 'token',
'fullname',
'first_name',
'last_name',
'natinal_id',
'mobile',
'birthday',
'image',
'state',
'role',
'address',
'unit_name',
'gis_code',
'operating_licence_capacity',
'number_of_halls',
'tenant',
'person_type',
'economic_code',
'system_code',
'epidemiological_code',
'breeding_unique_id',
'total_capacity',
'licence_number',
'health_certificate_number',
'number_of_requests',
'hatching_date',
'last_party_date',
'number_of_incubators',
'herd_age_by_day',
'herd_age_by_week',
'number_of_party',
'communication_type',
'cooperative',
'date_of_register',
'unit_status',
'samasat_user_code',
'user_bank_info',
'job',
'incubation_date',
]
class SystemUserProfileForAutoAllocationSerializer(serializers.ModelSerializer):
class Meta:
model = SystemUserProfile
fields = ['fullname', 'first_name', 'last_name', 'base_order', 'mobile', 'national_id', 'national_code', 'key',
'city', 'unit_name', 'unit_national_id', 'unit_registration_number', 'unit_economical_number',
'unit_province', 'unit_city', 'unit_postal_code', 'unit_address']
depth = 1
class SystemUserProfileForGuildSerializer(serializers.ModelSerializer):
city = serializers.CharField(source='city.name', read_only=True)
class Meta:
model = SystemUserProfile
fields = ['fullname', 'first_name', 'last_name', 'mobile', 'national_id', 'city','father_name','gender','is_alive','birthday','national_code']
depth = 1
class SystemUserProfileForInspectionSerializer(serializers.ModelSerializer):
province_name = serializers.CharField(source='province.name', read_only=True)
city_name = serializers.CharField(source='city.name', read_only=True)
class Meta:
model = SystemUserProfile
fields = ['fullname', 'first_name', 'last_name', 'mobile', 'national_id', 'province_name', 'city_name','is_alive','national_code','gender','father_name','birthday',
'password']
class SystemUserProfileForAllUsersSerializer(serializers.ModelSerializer):
role = serializers.SerializerMethodField('get_role')
class Meta:
model = SystemUserProfile
fields = ['fullname', 'national_id', 'mobile', 'birthday', 'password', 'role']
def get_role(self, instance):
role_list = []
for item in instance.role.all():
role_list.append(item.name)
return role_list
class SystemUserProfileSerializer(serializers.ModelSerializer):
# user=UserSerializer(read_only=True)
address = SystemAddressSerializer(read_only=True, required=False)
role = serializers.SerializerMethodField('get_role')
city = serializers.SerializerMethodField('get_city')
province = serializers.SerializerMethodField('get_province')
class Meta:
model = SystemUserProfile
exclude = (
'id',
'create_date',
'modify_date',
'trash',
'token',
'created_by',
'modified_by',
'user',
# 'password',
'access_level',
)
# extra_kwargs = {"access_level": {"required": False, "allow_null": True}}
def get_city(self, instance):
if instance.city == None:
pass
else:
return instance.city.name
def get_province(self, instance):
if instance.province == None:
pass
else:
return instance.province.name
def get_role(self, instance):
role_list = []
for item in instance.role.all():
role_list.append(item.name)
return role_list
class SystemUserProfileForFactorSerializer(serializers.ModelSerializer):
class Meta:
model = SystemUserProfile
fields = ['key', 'fullname', 'first_name', 'last_name', 'mobile', 'unit_name', 'unit_national_id',
'unit_registration_number', 'unit_economical_number', 'unit_province', 'unit_city',
'unit_postal_code', 'unit_address']
class SystemUserProfileBaseInfoSerializer(serializers.ModelSerializer):
role = GroupSerializer(many=True)
city = CitySerializer(read_only=True, required=False)
province = ProvinceSerializer(read_only=True, required=False)
class Meta:
model = SystemUserProfile
exclude = (
'id',
'create_date',
'modify_date',
'trash',
'token',
'created_by',
'modified_by',
'user',
'state',
# 'password',
'access_level',
)
class ExternalTransactionSerializer(serializers.ModelSerializer):
receiver = SystemUserProfileForAutoAllocationSerializer(read_only=True)
creator = SystemUserProfileForAutoAllocationSerializer(read_only=True)
information = serializers.SerializerMethodField('get_information')
class Meta:
model = ExternalTransaction
fields = '__all__'
def get_information(self, obj):
total_weight = 0
total_quantity = 0
total_request = 0
wage_payment = WagePayment.objects.filter(Q(orderId=obj.orderId) | Q(tracking_code=obj.saleReferenceId),
trash=False).first()
if wage_payment.province_kill_request != None:
total_request = len(wage_payment.province_kill_request)
for province_kill_req in wage_payment.province_kill_request:
province_kill = ProvinceKillRequest.objects.get(key=province_kill_req, trash=False)
total_weight += province_kill.total_killed_weight
total_quantity += province_kill.total_killed_quantity
return {
"total_weight": total_weight,
"total_quantity": total_quantity,
"total_request_number": total_request,
}
class SystemUserProfileForPoultryLocSerializer(serializers.ModelSerializer):
class Meta:
model = SystemUserProfile
fields = ['fullname', 'mobile']
class SystemUserProfileBaseInfoForTicketSerializer(serializers.ModelSerializer):
role = GroupSerializer(many=True)
city = CitySerializer(read_only=True, required=False)
province = ProvinceSerializer(read_only=True, required=False)
class Meta:
model = SystemUserProfile
fields = ['birthday', 'first_name', 'fullname', 'key', 'last_name', 'mobile', 'national_code', 'role', 'city',
'province']
class SystemUserProfileForPoultryScienceSerializer(serializers.ModelSerializer):
role = serializers.SerializerMethodField('get_role')
class Meta:
model = SystemUserProfile
fields = ['fullname', 'mobile','role']
def get_role(self, instance):
role_list = []
for item in instance.role.all():
role_list.append(item.name)
return role_list
class SystemUserProfileForPoultryScienceWithoutRoleSerializer(serializers.ModelSerializer):
city = CitySerializer(read_only=True, required=False)
class Meta:
model = SystemUserProfile
fields = ['fullname', 'mobile','city']

View File

@@ -0,0 +1,104 @@
from django.contrib.auth.models import User, Group
from rest_framework import serializers
from authentication.models import (
UserProfile,
Address,
City,
Province,
SystemAddress,
CityUnit
)
# سریالایزر مربوط به مدل استان
from panel.models import ManagementSendSms
class ProvinceSerializer(serializers.ModelSerializer):
class Meta:
model = Province
fields = ['key', 'name']
# سریالایزر مربوط به مدل شهرستان
class CitySerializer(serializers.ModelSerializer):
class Meta:
model = City
fields = ['key', 'name']
class CityForProductPricingSerializer(serializers.ModelSerializer):
class Meta:
model = City
fields = ['key', 'name', 'product_price']
# سریالایزر مربوط به مدل زیر بخش شهرستان
class CityUnitSerializer(serializers.ModelSerializer):
city = CitySerializer(read_only=True)
class Meta:
model = CityUnit
fields = ['key', 'name']
# سریالایزر مربوط به مدل آدرس
class SystemAddressSerializer(serializers.ModelSerializer):
province = ProvinceSerializer(required=False)
city = CitySerializer(required=False)
class Meta:
model = SystemAddress
fields = ['province', 'city', 'address', 'postal_code']
# سریالایزر مربوط به مدل آدرس
class AddressSerializer(serializers.ModelSerializer):
class Meta:
model = Address
fields = '__all__'
# سریالایزر مربوط به مدل کاربر
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
# سریالایزر مربوط به مدل نقش
class GroupSerializer(serializers.ModelSerializer):
class Meta:
model = Group
fields = ("name",)
# سریالایزر مربوط به مدل پروفایل کاربری
class UserProfileSerializer(serializers.ModelSerializer):
address = AddressSerializer(read_only=True)
class Meta:
model = UserProfile
fields = '__all__'
# سریالایزر مربوط به مدل شهرستان
class CityForLocSerializer(serializers.ModelSerializer):
class Meta:
model = City
fields = ['name']
class SystemAddressForLocSerializer(serializers.ModelSerializer):
city = CityForLocSerializer(required=False)
class Meta:
model = SystemAddress
fields = ['city','address']
class ManagementSendSmsSerializer(serializers.ModelSerializer):
class Meta:
model = ManagementSendSms
fields = '__all__'

File diff suppressed because it is too large Load Diff

3
authentication/tests.py Normal file
View File

@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

236
authentication/urls.py Normal file
View File

@@ -0,0 +1,236 @@
from django.urls import path, include
import oauth2_provider.views as oauth2_views
from rest_framework import routers
from django.conf import settings
from authentication.healthcheck import health_check
from authentication.message.views import (
UserMessageViewSet,
SendingMessageMethodViewSet,
SendSMSViewSet
)
from authentication.register import get_driver_excel, create_driver_excel_template, upload_driver_excel, \
get_poultry_hatching_excel, check_poultry_hatching_excel, \
reset_hatching_excel, enter_driver_hamedan, integration_of_hatching, check_poultry_in_db, \
update_chicken_age_from_login, violation_archive_true, update_chicken_breed_from_excel, ye_chee_bani, \
get_server_time, transaction_fix, internal_transaction_fix, convert_utm_to_location, change_last_digit_to_six, \
fix_guild_steward, check_product, kill_house_requests_product_warehousing, \
kill_house_free_buying_product_warehousing, kill_house_allocations_product_warehousing, \
kill_house_free_sale_product_warehousing, kill_house_cold_house_allocations_product_warehousing, \
check_kill_house_request_calculate, check_kill_house_free_bar_information_calculate, \
check_kill_house_free_sale_bar_information_calculate, check_steward_allocations_calculate, temporary_trash_true, \
archive_hatching_temporary_true, PoultryRequest_temporary_trash_true, CityOperatorCheckRequest_temporary_trash_true, \
KillRequest_temporary_trash_true, ProvinceKillRequest_temporary_trash_true, KillHouseRequest_temporary_trash_true, \
KillHouseAssignmentInformation_temporary_trash_true, KillHouseFreeBarInformation_temporary_trash_true, \
StewardAllocation_temporary_trash_true, ColdHouseAllocations_temporary_trash_true, \
StewardFreeBarInformation_temporary_trash_true, StewardFreeSaleBarInformation_temporary_trash_true, \
InternalTransaction_temporary_trash_true, ExternalTransaction_temporary_trash_true, \
ChainAllocation_temporary_trash_true, duplicate_order_code, fix_duplicate_order_code, fix_duplicate_order_code_new, \
add_vet_farm_to_poultry_request, create_city_guild, add_killing_age_to_poultry_request, add_poultry_prediction, \
fix_out_quantity_hatching, live_chicken_transportation, heards_meat_flow, chat_bot_info, detail_heards_meat_flow, \
breed, fix_kill_req_njsndb, add_to_warehouse_manual, add_free_bar_to_warehouse_manual, \
warning_free_bar_to_warehouse_manual, warning_to_warehouse_manual, warning_province_kill_request_without_bar_manual, \
update_chicken_age_from_login_manual, add_free_bar_to_warehouse_automatic_type_manual, KillHouseStressTestView, \
fix_warehouse_input_province_bars_for_limitation, fix_warehouse_out_buying_bars_for_limitation, \
fix_warehouse_in_province_allocations_for_limitation, fix_warehouse_free_sale_for_limitation, \
fix_warehouse_cold_house_for_limitation, fix_warehouse_segmentation_for_limitation, fix_warehouse_for_limitation, \
fix_time_error, fix_steward_free_buying_product_warehousing_for_limitation, \
fix_guild_steward_product_segmentation_warehousing_for_limitation, \
fix_guild_steward_free_sale_warehousing_for_limitation, \
fix_steward_guild_steward_allocations_warehousing_for_limitation, \
fix_steward_guild_pos_allocations_warehousing_for_limitation, fix_steward_warehouse_for_limitation, fix_pos_owner, \
fix_guild_steward_archive_warehousing, fix_guild_steward_pos_allocation_weight_for_product, \
fix_kill_house_archive_warehousing
from authentication.sms_management import user_sms, kill_house_vet_check_receive_sms, \
send_again_sms_for_final_approval_out_province, send_gate_way_sms_manual, send_deactivate_panel_debt_sms_manual, \
ManagementSendSmsViewSet, test_sms_endpoint
from authentication.views import (
login,
register,
new_login,
new_register,
new_send_otp,
forget_password,
UserProfileViewSet,
check_otp,
change_password,
AddressViewSet,
BankCardViewSet,
UserProfileSearchViewSet,
CheckChickenQuntityViewSet,
ProvinceViewSet,
CityViewSet,
CityUnitViewSet,
SystemAddressViewSet,
SystemUserProfileViewSet, ShowSystemUserProfileViewSet, ForceDiagramViewSet, CityWithOutProvinceKeyViewSet,
ProvinceChangeBankCardViewSet, TotalSystemUserProfileStatisticsDashboardViewSet,
TotalPricingStatisticsDashboardViewSet, ExternalTransactionViewSet, pos_login, show_transaction_info,
TokenVerification, new_pos_login, CityForProducctPricingViewSet, register_tenant,
SystemUserProfileّForFactorProfileViewSet, CitysViewSet
)
router = routers.DefaultRouter()
router.register(r'user-profile', UserProfileViewSet, basename='user-profile')
router.register(r'transactions', ExternalTransactionViewSet, basename='transactions')
router.register(r'system_user_profile', SystemUserProfileViewSet, basename='system-user-profile')
router.register(r'system_user_profile-for-factor', SystemUserProfileّForFactorProfileViewSet, basename='system_user_profile-for-factor')
router.register(r'user-profile_search', UserProfileSearchViewSet, basename='user-profile_search')
router.register(r'user-bank_card', BankCardViewSet, basename='user-bank_card')
router.register(r'province_change_bank_card', ProvinceChangeBankCardViewSet, basename='province_change_bank_card')
router.register(r'address', AddressViewSet, basename='address')
router.register(r'province', ProvinceViewSet, basename='province')
router.register(r'city', CityViewSet, basename='city')
router.register(r'city-product-pricing', CityForProducctPricingViewSet, basename='city-product-pricing')
router.register(r'province_cities', CityWithOutProvinceKeyViewSet, basename='province_cities')
router.register(r'cities', CitysViewSet, basename='cities')
router.register(r'city-unit', CityUnitViewSet, basename='city-unit')
router.register(r'system_address', SystemAddressViewSet, basename='system_address')
router.register(r'user_message', UserMessageViewSet, basename="user_message")
router.register(r'show_users', ShowSystemUserProfileViewSet, basename='show_users')
router.register(r'diageram', ForceDiagramViewSet, basename='diageram')
router.register(r'total_system_user_profile_dashboard', TotalSystemUserProfileStatisticsDashboardViewSet,
basename='total_system_user_profile_dashboard')
router.register(r'total_pricing_dashboard', TotalPricingStatisticsDashboardViewSet,
basename='total_pricing_dashboard')
router.register(r'sending_message_method', SendingMessageMethodViewSet, basename="sending_message_method")
router.register(r'send_sms', SendSMSViewSet, basename="send_sms")
router.register(r'quantity', CheckChickenQuntityViewSet, basename="quantity")
router.register(r'management-send-sms', ManagementSendSmsViewSet, basename="management-send-sms")
oauth2_endpoint_views = [
path('login/', new_login, name="login"),
path('pos-login/', pos_login, name="pos-login"),
path('new-pos-login/', new_pos_login, name="new-pos-login"),
path('newregister/', new_register, name="new_register"),
path('new_send/', new_send_otp, name='new_send'),
path('send/', new_send_otp, name="send_otp"),
path('check/', check_otp, name="check_otp"),
# path('login/', login, name="login"),
path('register/', register, name="register"),
path('forget/', forget_password, name="forget_password"),
path('change_password/', change_password, name="change_password"),
path('token/', oauth2_views.TokenView.as_view(), name="token"),
]
if settings.DEBUG:
# OAuth2 Application Management endpoints
oauth2_endpoint_views += [
path('applications/', oauth2_views.ApplicationList.as_view(), name="list"),
path('applications/register/', oauth2_views.ApplicationRegistration.as_view(), name="register"),
path('applications/<pk>/', oauth2_views.ApplicationDetail.as_view(), name="detail"),
path('applications/<pk>/delete/', oauth2_views.ApplicationDelete.as_view(), name="delete"),
path('applications/<pk>/update/', oauth2_views.ApplicationUpdate.as_view(), name="update"),
]
# OAuth2 Token Management endpoints
oauth2_endpoint_views += [
path('authorized-tokens/', oauth2_views.AuthorizedTokensListView.as_view(), name="authorized-token-list"),
path('authorized-tokens/<pk>/delete/', oauth2_views.AuthorizedTokenDeleteView.as_view(),
name="authorized-token-delete"),
]
urlpatterns = [
path('', include(router.urls)),
path('api/', include((oauth2_endpoint_views, 'oauth2_provider.urls'), namespace="oauth2_provider")),
# path('sms/', user_sms_wrapper),
path('sms/', user_sms),
path("health/", health_check),
path('driver_excel/', get_driver_excel),
path('driver_excel_template/', create_driver_excel_template),
path('upload_driver_excel/', upload_driver_excel),
path('hatching_excel/', get_poultry_hatching_excel),
path('check_hatching_excel/', check_poultry_hatching_excel),
path('vet_check_sms/', kill_house_vet_check_receive_sms),
path('reset_hatching_excel/', reset_hatching_excel),
path('enter_driver_hamedan/', enter_driver_hamedan),
path('integration_of_hatching/', integration_of_hatching),
path('check_poultry_in_db/', check_poultry_in_db),
path('show_transaction_info/', show_transaction_info),
path('update_chicken_age_from_login/', update_chicken_age_from_login),
path('violation_archive_true/', violation_archive_true),
path('update_chicken_breed_from_excel/', update_chicken_breed_from_excel),
path('token-verification/', TokenVerification),
path('ye_chee_bani/', ye_chee_bani),
path('get_server_time/', get_server_time),
path('transaction_fix/', transaction_fix),
path('internal_transaction_fix/', internal_transaction_fix),
path('convert_utm_to_location/', convert_utm_to_location),
path('change_last_digit_to_six/', change_last_digit_to_six),
path('send_again_sms_for_final_approval_out_province/', send_again_sms_for_final_approval_out_province),
path('fix_guild_steward/', fix_guild_steward),
path('check_product/', check_product),
path('register_tenant/', register_tenant),
path('kill_house_requests_product_warehousing/', kill_house_requests_product_warehousing),
path('kill_house_free_buying_product_warehousing/', kill_house_free_buying_product_warehousing),
path('kill_house_allocations_product_warehousing/', kill_house_allocations_product_warehousing),
path('kill_house_free_sale_product_warehousing/', kill_house_free_sale_product_warehousing),
path('kill_house_cold_house_allocations_product_warehousing/',
kill_house_cold_house_allocations_product_warehousing),
path('check_kill_house_request_calculate/', check_kill_house_request_calculate),
path('check_kill_house_free_bar_information_calculate/', check_kill_house_free_bar_information_calculate),
path('check_kill_house_free_sale_bar_information_calculate/', check_kill_house_free_sale_bar_information_calculate),
path('check_steward_allocations_calculate/', check_steward_allocations_calculate),
path('temporary_trash_true/', temporary_trash_true),
path('archive_hatching_temporary_true/', archive_hatching_temporary_true),
path('PoultryRequest_temporary_trash_true/', PoultryRequest_temporary_trash_true),
path('CityOperatorCheckRequest_temporary_trash_true/', CityOperatorCheckRequest_temporary_trash_true),
path('KillRequest_temporary_trash_true/', KillRequest_temporary_trash_true),
path('ProvinceKillRequest_temporary_trash_true/', ProvinceKillRequest_temporary_trash_true),
path('KillHouseRequest_temporary_trash_true/', KillHouseRequest_temporary_trash_true),
path('KillHouseAssignmentInformation_temporary_trash_true/', KillHouseAssignmentInformation_temporary_trash_true),
path('KillHouseFreeBarInformation_temporary_trash_true/', KillHouseFreeBarInformation_temporary_trash_true),
path('StewardAllocation_temporary_trash_true/', StewardAllocation_temporary_trash_true),
path('ColdHouseAllocations_temporary_trash_true/', ColdHouseAllocations_temporary_trash_true),
path('StewardFreeBarInformation_temporary_trash_true/', StewardFreeBarInformation_temporary_trash_true),
path('StewardFreeSaleBarInformation_temporary_trash_true/', StewardFreeSaleBarInformation_temporary_trash_true),
path('InternalTransaction_temporary_trash_true/', InternalTransaction_temporary_trash_true),
path('ExternalTransaction_temporary_trash_true/', ExternalTransaction_temporary_trash_true),
path('ChainAllocation_temporary_trash_true/', ChainAllocation_temporary_trash_true),
path('duplicate_order_code/', duplicate_order_code),
path('fix_duplicate_order_code/', fix_duplicate_order_code),
path('fix_duplicate_order_code_new/', fix_duplicate_order_code_new),
path('add_vet_farm_to_poultry_request/', add_vet_farm_to_poultry_request),
path('create_city_guild/', create_city_guild),
path('add_killing_age_to_poultry_request/', add_killing_age_to_poultry_request),
path('add_poultry_prediction/', add_poultry_prediction),
path('fix_out_quantity_hatching/', fix_out_quantity_hatching),
path('live_chicken_transportation/', live_chicken_transportation),
path('heards_meat_flow/', heards_meat_flow),
path('detail_heards_meat_flow/', detail_heards_meat_flow),
path('breed/', breed),
path('chat_bot_info/', chat_bot_info),
path('fix_kill_req_njsndb/', fix_kill_req_njsndb),
path('add_to_warehouse_manual/', add_to_warehouse_manual),
path('add_free_bar_to_warehouse_manual/', add_free_bar_to_warehouse_manual),
path('send_gate_way_sms_manual/', send_gate_way_sms_manual),
path('fix_warehouse_for_limitation/', fix_warehouse_for_limitation),
path('fix_warehouse_input_province_bars_for_limitation/', fix_warehouse_input_province_bars_for_limitation),
path('fix_warehouse_out_buying_bars_for_limitation/', fix_warehouse_out_buying_bars_for_limitation),
path('fix_warehouse_in_province_allocations_for_limitation/', fix_warehouse_in_province_allocations_for_limitation),
path('fix_warehouse_free_sale_for_limitation/', fix_warehouse_free_sale_for_limitation),
path('fix_warehouse_cold_house_for_limitation/', fix_warehouse_cold_house_for_limitation),
path('fix_warehouse_segmentation_for_limitation/', fix_warehouse_segmentation_for_limitation),
path('fix_kill_house_archive_warehousing/', fix_kill_house_archive_warehousing),
path('fix_time_error/', fix_time_error),
path('fix_pos_owner/', fix_pos_owner),
path('send_deactivate_panel_debt_sms_manual/', send_deactivate_panel_debt_sms_manual),
path('test_sms/', test_sms_endpoint),
path('warning_free_bar_to_warehouse_manual/', warning_free_bar_to_warehouse_manual),
path('warning_to_warehouse_manual/', warning_to_warehouse_manual),
path('warning_province_kill_request_without_bar_manual/', warning_province_kill_request_without_bar_manual),
path('update_chicken_age_from_login_manual/', update_chicken_age_from_login_manual),
path('add_free_bar_to_warehouse_automatic_type_manual/', add_free_bar_to_warehouse_automatic_type_manual),
path('fix_steward_free_buying_product_warehousing_for_limitation/', fix_steward_free_buying_product_warehousing_for_limitation),
path('fix_steward_guild_steward_allocations_warehousing_for_limitation/', fix_steward_guild_steward_allocations_warehousing_for_limitation),
path('fix_guild_steward_free_sale_warehousing_for_limitation/', fix_guild_steward_free_sale_warehousing_for_limitation),
path('fix_guild_steward_product_segmentation_warehousing_for_limitation/', fix_guild_steward_product_segmentation_warehousing_for_limitation),
path('fix_steward_guild_pos_allocations_warehousing_for_limitation/', fix_steward_guild_pos_allocations_warehousing_for_limitation),
path('fix_steward_warehouse_for_limitation/', fix_steward_warehouse_for_limitation),
path('fix_guild_steward_archive_warehousing/', fix_guild_steward_archive_warehousing),
path('fix_guild_steward_pos_allocation_weight_for_product/', fix_guild_steward_pos_allocation_weight_for_product),
path("killhouse-stress/", KillHouseStressTestView.as_view(), name="killhouse-stress"),
]

3163
authentication/views.py Normal file

File diff suppressed because it is too large Load Diff