first push
This commit is contained in:
0
authentication/__init__.py
Normal file
0
authentication/__init__.py
Normal file
3
authentication/admin.py
Normal file
3
authentication/admin.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
||||
6
authentication/apps.py
Normal file
6
authentication/apps.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class AuthenticationConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'authentication'
|
||||
169
authentication/arvan_image/arvan_storage.py
Normal file
169
authentication/arvan_image/arvan_storage.py
Normal 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
|
||||
)
|
||||
29
authentication/filterset.py
Normal file
29
authentication/filterset.py
Normal 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
|
||||
|
||||
5
authentication/healthcheck.py
Normal file
5
authentication/healthcheck.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from django.http import JsonResponse
|
||||
|
||||
|
||||
def health_check(request):
|
||||
return JsonResponse({"status": "ok"})
|
||||
0
authentication/helper/__init__.py
Normal file
0
authentication/helper/__init__.py
Normal file
78
authentication/helper/helper.py
Normal file
78
authentication/helper/helper.py
Normal 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
|
||||
}
|
||||
21
authentication/helper/image_services.py
Normal file
21
authentication/helper/image_services.py
Normal 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
|
||||
12
authentication/helper/refresh.py
Normal file
12
authentication/helper/refresh.py
Normal 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()
|
||||
|
||||
82
authentication/log.py
Normal file
82
authentication/log.py
Normal file
@@ -0,0 +1,82 @@
|
||||
import time
|
||||
from functools import wraps
|
||||
|
||||
from authentication.models import Log, SystemUserProfile
|
||||
import requests
|
||||
|
||||
|
||||
def log_function_info(func):
|
||||
@wraps(func)
|
||||
def wrapper(request, *args, **kwargs):
|
||||
start_time = time.time()
|
||||
response = func(request, *args, **kwargs)
|
||||
duration = time.time() - start_time
|
||||
log = Log(
|
||||
user=request.user,
|
||||
function_name=func.__name__,
|
||||
request=request,
|
||||
response=response,
|
||||
request_body=request.data,
|
||||
response_body=response.data,
|
||||
duration=duration,
|
||||
status=response.status_code
|
||||
)
|
||||
log.save()
|
||||
return response
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
def log_viewset_info(func):
|
||||
@wraps(func)
|
||||
def wrapper(viewset, request, *args, **kwargs):
|
||||
start_time = time.time()
|
||||
response = func(viewset, request, *args, **kwargs)
|
||||
duration = time.time() - start_time
|
||||
log = Log(
|
||||
user=request.user,
|
||||
function_name=func.__name__,
|
||||
request=request,
|
||||
response=response,
|
||||
request_body=request.data,
|
||||
response_body=response.data,
|
||||
duration=duration,
|
||||
status=response.status_code
|
||||
)
|
||||
log.save()
|
||||
return response
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
def log_sms(func):
|
||||
@wraps(func)
|
||||
def wrapper(request, *args, **kwargs):
|
||||
response = func(request, *args, **kwargs)
|
||||
operator = SystemUserProfile.objects.get(user=request.user)
|
||||
roles = None
|
||||
users = None
|
||||
message = request.data['message']
|
||||
if 'role' in request.data.keys():
|
||||
roles = request.data['role']
|
||||
if 'user' in request.data.keys():
|
||||
users = request.data['user']
|
||||
|
||||
if roles != None and users != None:
|
||||
users = SystemUserProfile.objects.filter(role__name__in=roles, key__in=users,
|
||||
province=operator.province).order_by('id')
|
||||
elif roles != None:
|
||||
users = SystemUserProfile.objects.filter(role__name__in=roles, province=operator.province).order_by('id')
|
||||
else:
|
||||
users = SystemUserProfile.objects.filter(key__in=users, province=operator.province).order_by('id')
|
||||
|
||||
for user in users:
|
||||
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=hamedan&password=ha123456&from=30002501&to={}&message={}".format(
|
||||
user.mobile, message)
|
||||
url = u.format()
|
||||
payload = {}
|
||||
headers = {"Content-Type": "application/x-www-form-urlencoded"}
|
||||
r = requests.request("GET", url, headers=headers, data=payload)
|
||||
return response
|
||||
|
||||
return wrapper
|
||||
0
authentication/message/__init__.py
Normal file
0
authentication/message/__init__.py
Normal file
28
authentication/message/serializers.py
Normal file
28
authentication/message/serializers.py
Normal 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}
|
||||
}
|
||||
195
authentication/message/views.py
Normal file
195
authentication/message/views.py
Normal 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)
|
||||
373
authentication/migrations/0001_initial.py
Normal file
373
authentication/migrations/0001_initial.py
Normal file
@@ -0,0 +1,373 @@
|
||||
# Generated by Django 3.2.13 on 2022-12-04 13:13
|
||||
|
||||
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(2022, 12, 4, 13, 13, 23, 181362))),
|
||||
('last_party_date', models.DateTimeField(default=datetime.datetime(2022, 12, 4, 13, 13, 23, 181450))),
|
||||
('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(2022, 12, 4, 13, 13, 23, 181666))),
|
||||
('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(2022, 12, 4, 14, 13, 23, 193330))),
|
||||
('time', models.DateTimeField(default=datetime.datetime(2022, 12, 4, 13, 13, 23, 193389))),
|
||||
('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'),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0002_auto_20221204_1315.py
Normal file
39
authentication/migrations/0002_auto_20221204_1315.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2022-12-04 13:15
|
||||
|
||||
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(2022, 12, 4, 14, 15, 38, 825842)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 4, 13, 15, 38, 825907)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 4, 13, 15, 38, 815252)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 4, 13, 15, 38, 814964)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 4, 13, 15, 38, 815052)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0003_auto_20221204_1402.py
Normal file
39
authentication/migrations/0003_auto_20221204_1402.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2022-12-04 14:02
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0002_auto_20221204_1315'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 4, 15, 2, 52, 979208)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 4, 14, 2, 52, 979275)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 4, 14, 2, 52, 970253)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 4, 14, 2, 52, 969944)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 4, 14, 2, 52, 970013)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0004_auto_20221211_0954.py
Normal file
39
authentication/migrations/0004_auto_20221211_0954.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2022-12-11 09:54
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0003_auto_20221204_1402'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 11, 10, 53, 57, 373969)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 11, 9, 53, 57, 374005)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 11, 9, 53, 57, 365502)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 11, 9, 53, 57, 365200)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 11, 9, 53, 57, 365270)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0005_auto_20221221_0001.py
Normal file
39
authentication/migrations/0005_auto_20221221_0001.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2022-12-21 00:01
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0004_auto_20221211_0954'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 21, 1, 1, 33, 643309)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 21, 0, 1, 33, 643340)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 21, 0, 1, 33, 636973)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 21, 0, 1, 33, 636808)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2022, 12, 21, 0, 1, 33, 636849)),
|
||||
),
|
||||
]
|
||||
66
authentication/migrations/0006_auto_20230603_2204.py
Normal file
66
authentication/migrations/0006_auto_20230603_2204.py
Normal file
@@ -0,0 +1,66 @@
|
||||
# Generated by Django 3.2.13 on 2023-06-03 22:04
|
||||
|
||||
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_20221221_0001'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 6, 3, 23, 4, 2, 197322)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 6, 3, 22, 4, 2, 197359)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 6, 3, 22, 4, 2, 191071)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 6, 3, 22, 4, 2, 190914)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 6, 3, 22, 4, 2, 190976)),
|
||||
),
|
||||
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,
|
||||
},
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0007_auto_20230603_2209.py
Normal file
39
authentication/migrations/0007_auto_20230603_2209.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2023-06-03 22:09
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0006_auto_20230603_2204'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 6, 3, 23, 9, 47, 941746)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 6, 3, 22, 9, 47, 941784)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 6, 3, 22, 9, 47, 931752)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 6, 3, 22, 9, 47, 931502)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 6, 3, 22, 9, 47, 931592)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0008_auto_20230720_1546.py
Normal file
39
authentication/migrations/0008_auto_20230720_1546.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2023-07-20 15:46
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0007_auto_20230603_2209'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 20, 16, 46, 30, 505080)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 20, 15, 46, 30, 505115)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 20, 15, 46, 30, 497504)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 20, 15, 46, 30, 497357)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 20, 15, 46, 30, 497412)),
|
||||
),
|
||||
]
|
||||
119
authentication/migrations/0009_auto_20230723_1343.py
Normal file
119
authentication/migrations/0009_auto_20230723_1343.py
Normal file
@@ -0,0 +1,119 @@
|
||||
# Generated by Django 3.2.13 on 2023-07-23 13:43
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0008_auto_20230720_1546'),
|
||||
]
|
||||
|
||||
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_center',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
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, 14, 42, 56, 164258)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 23, 13, 42, 56, 164295)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 23, 13, 42, 56, 157005)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 23, 13, 42, 56, 156867)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 23, 13, 42, 56, 156909)),
|
||||
),
|
||||
]
|
||||
134
authentication/migrations/0010_auto_20230726_0957.py
Normal file
134
authentication/migrations/0010_auto_20230726_0957.py
Normal file
@@ -0,0 +1,134 @@
|
||||
# Generated by Django 3.2.13 on 2023-07-26 09:57
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0009_auto_20230723_1343'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='bankcard',
|
||||
name='province_name',
|
||||
field=models.CharField(max_length=50, null=True),
|
||||
),
|
||||
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, 26, 10, 57, 28, 736632)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 26, 9, 57, 28, 736669)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 26, 9, 57, 28, 730496)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 26, 9, 57, 28, 730307)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 7, 26, 9, 57, 28, 730345)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0011_auto_20230806_2224.py
Normal file
39
authentication/migrations/0011_auto_20230806_2224.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2023-08-06 22:24
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0010_auto_20230726_0957'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 8, 6, 23, 24, 55, 531753)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 8, 6, 22, 24, 55, 531789)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 8, 6, 22, 24, 55, 524587)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 8, 6, 22, 24, 55, 524430)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 8, 6, 22, 24, 55, 524462)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0012_auto_20230827_1543.py
Normal file
39
authentication/migrations/0012_auto_20230827_1543.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2023-08-27 15:43
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0011_auto_20230806_2224'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 8, 27, 16, 43, 3, 915052)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 8, 27, 15, 43, 3, 915088)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 8, 27, 15, 43, 3, 907540)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 8, 27, 15, 43, 3, 907398)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 8, 27, 15, 43, 3, 907432)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0013_auto_20231010_1504.py
Normal file
39
authentication/migrations/0013_auto_20231010_1504.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2023-10-10 15:04
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0012_auto_20230827_1543'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 10, 10, 16, 4, 25, 261530)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 10, 10, 15, 4, 25, 261530)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 10, 10, 15, 4, 25, 261530)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 10, 10, 15, 4, 25, 261530)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 10, 10, 15, 4, 25, 261530)),
|
||||
),
|
||||
]
|
||||
74
authentication/migrations/0014_auto_20231112_1546.py
Normal file
74
authentication/migrations/0014_auto_20231112_1546.py
Normal file
@@ -0,0 +1,74 @@
|
||||
# Generated by Django 3.2.13 on 2023-11-12 15:46
|
||||
|
||||
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_1504'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 16, 46, 2, 555876)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 46, 2, 555876)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 46, 2, 555876)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 46, 2, 555876)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 46, 2, 555876)),
|
||||
),
|
||||
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,
|
||||
},
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0015_auto_20231112_1551.py
Normal file
39
authentication/migrations/0015_auto_20231112_1551.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2023-11-12 15:51
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0014_auto_20231112_1546'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 16, 50, 52, 82371)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 50, 52, 82371)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 50, 52, 71081)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 50, 52, 70079)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 11, 12, 15, 50, 52, 70079)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0016_auto_20231205_1348.py
Normal file
39
authentication/migrations/0016_auto_20231205_1348.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2023-12-05 13:48
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0015_auto_20231112_1551'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 5, 14, 48, 10, 308577)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 5, 13, 48, 10, 308577)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 5, 13, 48, 10, 276606)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 5, 13, 48, 10, 275608)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 5, 13, 48, 10, 276606)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0017_auto_20231210_1416.py
Normal file
39
authentication/migrations/0017_auto_20231210_1416.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2023-12-10 14:16
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0016_auto_20231205_1348'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 10, 15, 16, 16, 775906)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 10, 14, 16, 16, 775906)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 10, 14, 16, 16, 771906)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 10, 14, 16, 16, 771906)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 10, 14, 16, 16, 771906)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0018_auto_20231211_2019.py
Normal file
39
authentication/migrations/0018_auto_20231211_2019.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2023-12-11 20:19
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0017_auto_20231210_1416'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 11, 21, 18, 56, 673292)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 11, 20, 18, 56, 673292)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 11, 20, 18, 56, 667096)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 11, 20, 18, 56, 667016)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 11, 20, 18, 56, 667016)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0019_auto_20231214_2314.py
Normal file
39
authentication/migrations/0019_auto_20231214_2314.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2023-12-14 23:14
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0018_auto_20231211_2019'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 15, 0, 14, 40, 758169)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 14, 23, 14, 40, 758169)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 14, 23, 14, 40, 751949)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 14, 23, 14, 40, 750931)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2023, 12, 14, 23, 14, 40, 750931)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0020_auto_20240108_1233.py
Normal file
39
authentication/migrations/0020_auto_20240108_1233.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-01-08 12:33
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0019_auto_20231214_2314'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 8, 13, 32, 58, 374438)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 8, 12, 32, 58, 374438)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 8, 12, 32, 58, 374438)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 8, 12, 32, 58, 374438)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 8, 12, 32, 58, 374438)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0021_auto_20240110_2021.py
Normal file
39
authentication/migrations/0021_auto_20240110_2021.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-01-10 20:21
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0020_auto_20240108_1233'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 10, 21, 21, 13, 768583)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 10, 20, 21, 13, 768583)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 10, 20, 21, 13, 768583)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 10, 20, 21, 13, 768583)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 10, 20, 21, 13, 768583)),
|
||||
),
|
||||
]
|
||||
45
authentication/migrations/0022_auto_20240131_1501.py
Normal file
45
authentication/migrations/0022_auto_20240131_1501.py
Normal file
@@ -0,0 +1,45 @@
|
||||
# Generated by Django 3.2.13 on 2024-01-31 15:01
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0021_auto_20240110_2021'),
|
||||
]
|
||||
|
||||
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, 16, 1, 33, 609274)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 31, 15, 1, 33, 609274)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 31, 15, 1, 33, 604279)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 31, 15, 1, 33, 604279)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 1, 31, 15, 1, 33, 604279)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0023_auto_20240220_1536.py
Normal file
39
authentication/migrations/0023_auto_20240220_1536.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-02-20 15:36
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0022_auto_20240131_1501'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 2, 20, 16, 36, 25, 342295)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 2, 20, 15, 36, 25, 342295)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 2, 20, 15, 36, 25, 338297)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 2, 20, 15, 36, 25, 337302)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 2, 20, 15, 36, 25, 338297)),
|
||||
),
|
||||
]
|
||||
61
authentication/migrations/0024_auto_20240407_1100.py
Normal file
61
authentication/migrations/0024_auto_20240407_1100.py
Normal file
@@ -0,0 +1,61 @@
|
||||
# Generated by Django 3.2.13 on 2024-04-07 11:00
|
||||
|
||||
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', '0023_auto_20240220_1536'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 12, 0, 37, 741325)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 11, 0, 37, 741325)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 11, 0, 37, 738325)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 11, 0, 37, 737325)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 7, 11, 0, 37, 737325)),
|
||||
),
|
||||
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(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,
|
||||
},
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0025_auto_20240416_1516.py
Normal file
39
authentication/migrations/0025_auto_20240416_1516.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-04-16 15:16
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0024_auto_20240407_1100'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 16, 16, 16, 37, 407531)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 16, 15, 16, 37, 407531)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 16, 15, 16, 37, 403526)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 16, 15, 16, 37, 403526)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 16, 15, 16, 37, 403526)),
|
||||
),
|
||||
]
|
||||
44
authentication/migrations/0026_auto_20240417_1455.py
Normal file
44
authentication/migrations/0026_auto_20240417_1455.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# Generated by Django 3.2.13 on 2024-04-17 14:55
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0025_auto_20240416_1516'),
|
||||
]
|
||||
|
||||
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, 55, 11, 648139)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 17, 14, 55, 11, 648139)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 17, 14, 55, 11, 639145)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 17, 14, 55, 11, 638144)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 17, 14, 55, 11, 639145)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0027_auto_20240420_0047.py
Normal file
39
authentication/migrations/0027_auto_20240420_0047.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-04-20 00:47
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0026_auto_20240417_1455'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 20, 1, 47, 23, 720070)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 20, 0, 47, 23, 720070)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 20, 0, 47, 23, 715068)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 20, 0, 47, 23, 715068)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 20, 0, 47, 23, 715068)),
|
||||
),
|
||||
]
|
||||
44
authentication/migrations/0028_auto_20240427_1523.py
Normal file
44
authentication/migrations/0028_auto_20240427_1523.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# Generated by Django 3.2.13 on 2024-04-27 15:23
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0027_auto_20240420_0047'),
|
||||
]
|
||||
|
||||
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, 22, 34, 278366)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 27, 15, 22, 34, 278366)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 27, 15, 22, 34, 271367)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 27, 15, 22, 34, 270372)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 4, 27, 15, 22, 34, 270372)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0029_auto_20240513_1607.py
Normal file
39
authentication/migrations/0029_auto_20240513_1607.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-05-13 16:07
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0028_auto_20240427_1523'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 13, 17, 6, 56, 491299)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 13, 16, 6, 56, 491299)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 13, 16, 6, 56, 477303)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 13, 16, 6, 56, 477303)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 13, 16, 6, 56, 477303)),
|
||||
),
|
||||
]
|
||||
45
authentication/migrations/0030_auto_20240516_1516.py
Normal file
45
authentication/migrations/0030_auto_20240516_1516.py
Normal file
@@ -0,0 +1,45 @@
|
||||
# Generated by Django 3.2.13 on 2024-05-16 15:16
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0029_auto_20240513_1607'),
|
||||
]
|
||||
|
||||
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, 16, 2, 171521)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 16, 15, 16, 2, 171521)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 16, 15, 16, 2, 167521)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 16, 15, 16, 2, 167521)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 16, 15, 16, 2, 167521)),
|
||||
),
|
||||
]
|
||||
74
authentication/migrations/0031_auto_20240518_0955.py
Normal file
74
authentication/migrations/0031_auto_20240518_0955.py
Normal file
@@ -0,0 +1,74 @@
|
||||
# Generated by Django 3.2.13 on 2024-05-18 09:55
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0030_auto_20240516_1516'),
|
||||
]
|
||||
|
||||
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, 55, 13, 145830)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 18, 9, 55, 13, 145830)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 18, 9, 55, 13, 142830)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 18, 9, 55, 13, 142830)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 18, 9, 55, 13, 142830)),
|
||||
),
|
||||
]
|
||||
44
authentication/migrations/0032_auto_20240527_1504.py
Normal file
44
authentication/migrations/0032_auto_20240527_1504.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# Generated by Django 3.2.13 on 2024-05-27 15:04
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0031_auto_20240518_0955'),
|
||||
]
|
||||
|
||||
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, 4, 11, 379226)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 27, 15, 4, 11, 379226)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 27, 15, 4, 11, 375226)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 27, 15, 4, 11, 375226)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 5, 27, 15, 4, 11, 375226)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0033_auto_20240620_1609.py
Normal file
39
authentication/migrations/0033_auto_20240620_1609.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-06-20 16:09
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0032_auto_20240527_1504'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 6, 20, 17, 8, 52, 783409)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 6, 20, 16, 8, 52, 783409)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 6, 20, 16, 8, 52, 778409)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 6, 20, 16, 8, 52, 778409)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 6, 20, 16, 8, 52, 778409)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0034_auto_20240713_1535.py
Normal file
39
authentication/migrations/0034_auto_20240713_1535.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-07-13 15:35
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0033_auto_20240620_1609'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 7, 13, 16, 35, 11, 366844)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 7, 13, 15, 35, 11, 366844)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 7, 13, 15, 35, 11, 360844)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 7, 13, 15, 35, 11, 360844)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 7, 13, 15, 35, 11, 360844)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0035_auto_20240803_1454.py
Normal file
39
authentication/migrations/0035_auto_20240803_1454.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-08-03 14:54
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0034_auto_20240713_1535'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 8, 3, 15, 53, 59, 484389)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 8, 3, 14, 53, 59, 484389)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 8, 3, 14, 53, 59, 480389)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 8, 3, 14, 53, 59, 480389)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 8, 3, 14, 53, 59, 480389)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0036_auto_20240820_1051.py
Normal file
39
authentication/migrations/0036_auto_20240820_1051.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-08-20 10:51
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0035_auto_20240803_1454'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 8, 20, 11, 51, 44, 873391)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 8, 20, 10, 51, 44, 873391)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 8, 20, 10, 51, 44, 868391)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 8, 20, 10, 51, 44, 867392)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 8, 20, 10, 51, 44, 867392)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0037_auto_20241031_1409.py
Normal file
39
authentication/migrations/0037_auto_20241031_1409.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-10-31 14:09
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0036_auto_20240820_1051'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 10, 31, 15, 9, 6, 479600)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 10, 31, 14, 9, 6, 479600)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 10, 31, 14, 9, 6, 476123)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 10, 31, 14, 9, 6, 476123)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 10, 31, 14, 9, 6, 476123)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0038_auto_20241109_2158.py
Normal file
39
authentication/migrations/0038_auto_20241109_2158.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-11-09 21:58
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0037_auto_20241031_1409'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 11, 9, 22, 58, 37, 809006)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 11, 9, 21, 58, 37, 809006)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 11, 9, 21, 58, 37, 805501)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 11, 9, 21, 58, 37, 804501)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 11, 9, 21, 58, 37, 804501)),
|
||||
),
|
||||
]
|
||||
183
authentication/migrations/0039_auto_20241201_1016.py
Normal file
183
authentication/migrations/0039_auto_20241201_1016.py
Normal file
@@ -0,0 +1,183 @@
|
||||
# Generated by Django 3.2.13 on 2024-12-01 10:16
|
||||
|
||||
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', '0038_auto_20241109_2158'),
|
||||
]
|
||||
|
||||
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, 12, 1, 11, 16, 19, 43259)),
|
||||
),
|
||||
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, 12, 1, 10, 16, 19, 43259)),
|
||||
),
|
||||
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, 12, 1, 10, 16, 19, 40251)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 1, 10, 16, 19, 40251)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 1, 10, 16, 19, 40251)),
|
||||
),
|
||||
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,
|
||||
},
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0040_auto_20241208_1514.py
Normal file
39
authentication/migrations/0040_auto_20241208_1514.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-12-08 15:14
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0039_auto_20241201_1016'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 8, 16, 14, 18, 621700)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 8, 15, 14, 18, 621700)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 8, 15, 14, 18, 619697)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 8, 15, 14, 18, 617695)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 8, 15, 14, 18, 617695)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0041_auto_20241227_1500.py
Normal file
39
authentication/migrations/0041_auto_20241227_1500.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-12-27 15:00
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0040_auto_20241208_1514'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 15, 59, 54, 138496)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 14, 59, 54, 138496)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 14, 59, 54, 135497)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 14, 59, 54, 135497)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 14, 59, 54, 135497)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0042_auto_20241227_1519.py
Normal file
39
authentication/migrations/0042_auto_20241227_1519.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-12-27 15:19
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0041_auto_20241227_1500'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 16, 18, 53, 301217)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 15, 18, 53, 301217)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 15, 18, 53, 297173)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 15, 18, 53, 297173)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 15, 18, 53, 297173)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0043_auto_20241227_1534.py
Normal file
39
authentication/migrations/0043_auto_20241227_1534.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-12-27 15:34
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0042_auto_20241227_1519'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 16, 34, 24, 188820)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 15, 34, 24, 188820)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 15, 34, 24, 184820)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 15, 34, 24, 184820)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 27, 15, 34, 24, 184820)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0044_auto_20241228_1054.py
Normal file
39
authentication/migrations/0044_auto_20241228_1054.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2024-12-28 10:54
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0043_auto_20241227_1534'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 28, 11, 54, 29, 553329)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 28, 10, 54, 29, 553329)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 28, 10, 54, 29, 553329)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 28, 10, 54, 29, 553329)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2024, 12, 28, 10, 54, 29, 553329)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0045_auto_20250112_1928.py
Normal file
39
authentication/migrations/0045_auto_20250112_1928.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-01-12 19:28
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0044_auto_20241228_1054'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 12, 20, 28, 27, 233996)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 12, 19, 28, 27, 233996)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 12, 19, 28, 27, 229988)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 12, 19, 28, 27, 229988)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 12, 19, 28, 27, 229988)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0046_auto_20250118_1751.py
Normal file
39
authentication/migrations/0046_auto_20250118_1751.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-01-18 17:51
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0045_auto_20250112_1928'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 18, 18, 51, 37, 10372)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 18, 17, 51, 37, 10372)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 18, 17, 51, 37, 7378)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 18, 17, 51, 37, 7378)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 18, 17, 51, 37, 7378)),
|
||||
),
|
||||
]
|
||||
79
authentication/migrations/0047_auto_20250121_0922.py
Normal file
79
authentication/migrations/0047_auto_20250121_0922.py
Normal file
@@ -0,0 +1,79 @@
|
||||
# Generated by Django 3.2.13 on 2025-01-21 09:22
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0046_auto_20250118_1751'),
|
||||
]
|
||||
|
||||
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, 22, 49, 487376)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 21, 9, 22, 49, 487376)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 21, 9, 22, 49, 487376)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 21, 9, 22, 49, 487376)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 1, 21, 9, 22, 49, 487376)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0048_auto_20250201_1221.py
Normal file
39
authentication/migrations/0048_auto_20250201_1221.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-02-01 12:21
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0047_auto_20250121_0922'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 2, 1, 13, 21, 20, 928031)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 2, 1, 12, 21, 20, 928031)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 2, 1, 12, 21, 20, 925031)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 2, 1, 12, 21, 20, 925031)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 2, 1, 12, 21, 20, 925031)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0049_auto_20250303_2034.py
Normal file
39
authentication/migrations/0049_auto_20250303_2034.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-03-03 20:34
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0048_auto_20250201_1221'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 3, 21, 34, 11, 354096)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 3, 20, 34, 11, 354096)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 3, 20, 34, 11, 351096)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 3, 20, 34, 11, 351096)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 3, 20, 34, 11, 351096)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0050_auto_20250303_2036.py
Normal file
39
authentication/migrations/0050_auto_20250303_2036.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-03-03 20:36
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0049_auto_20250303_2034'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 3, 21, 35, 52, 633610)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 3, 20, 35, 52, 633610)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 3, 20, 35, 52, 630615)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 3, 20, 35, 52, 630615)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 3, 20, 35, 52, 630615)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0051_auto_20250306_1213.py
Normal file
39
authentication/migrations/0051_auto_20250306_1213.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-03-06 12:13
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0050_auto_20250303_2036'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 6, 13, 12, 51, 938634)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 6, 12, 12, 51, 938634)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 6, 12, 12, 51, 935071)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 6, 12, 12, 51, 934085)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 3, 6, 12, 12, 51, 934085)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0052_auto_20250527_1054.py
Normal file
39
authentication/migrations/0052_auto_20250527_1054.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-05-27 10:54
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0051_auto_20250306_1213'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 11, 54, 19, 292383)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 10, 54, 19, 292383)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 10, 54, 19, 289162)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 10, 54, 19, 289162)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 10, 54, 19, 289162)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0053_auto_20250527_1202.py
Normal file
39
authentication/migrations/0053_auto_20250527_1202.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-05-27 12:02
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0052_auto_20250527_1054'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 13, 2, 13, 462321)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 12, 2, 13, 462321)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 12, 2, 13, 462321)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 12, 2, 13, 462321)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 27, 12, 2, 13, 462321)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0054_auto_20250528_1439.py
Normal file
39
authentication/migrations/0054_auto_20250528_1439.py
Normal 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', '0053_auto_20250527_1202'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 28, 15, 37, 38, 358727)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 28, 14, 37, 38, 358727)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 28, 14, 37, 37, 831944)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 28, 14, 37, 37, 831944)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 5, 28, 14, 37, 37, 831944)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0055_auto_20250601_1035.py
Normal file
39
authentication/migrations/0055_auto_20250601_1035.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-06-01 10:35
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0054_auto_20250528_1439'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 6, 1, 11, 35, 36, 556531)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 6, 1, 10, 35, 36, 556531)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 6, 1, 10, 35, 36, 556531)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 6, 1, 10, 35, 36, 556531)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 6, 1, 10, 35, 36, 556531)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0056_auto_20250901_1650.py
Normal file
39
authentication/migrations/0056_auto_20250901_1650.py
Normal 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', '0055_auto_20250601_1035'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 9, 1, 17, 50, 12, 908876)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 9, 1, 16, 50, 12, 908876)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 9, 1, 16, 50, 12, 894937)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 9, 1, 16, 50, 12, 894937)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 9, 1, 16, 50, 12, 894937)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0057_auto_20250920_1316.py
Normal file
39
authentication/migrations/0057_auto_20250920_1316.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-09-20 13:16
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0056_auto_20250901_1650'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 9, 20, 14, 16, 45, 265068)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 9, 20, 13, 16, 45, 265068)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 9, 20, 13, 16, 45, 261975)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 9, 20, 13, 16, 45, 261975)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 9, 20, 13, 16, 45, 261975)),
|
||||
),
|
||||
]
|
||||
54
authentication/migrations/0058_auto_20251104_2046.py
Normal file
54
authentication/migrations/0058_auto_20251104_2046.py
Normal file
@@ -0,0 +1,54 @@
|
||||
# Generated by Django 3.2.13 on 2025-11-04 20:46
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0057_auto_20250920_1316'),
|
||||
]
|
||||
|
||||
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, 46, 6, 33917)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 11, 4, 20, 46, 6, 33917)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 11, 4, 20, 46, 6, 28911)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 11, 4, 20, 46, 6, 28911)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 11, 4, 20, 46, 6, 28911)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0059_auto_20251208_1019.py
Normal file
39
authentication/migrations/0059_auto_20251208_1019.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-12-08 10:19
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0058_auto_20251104_2046'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 8, 11, 16, 49, 224741)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 8, 10, 16, 49, 224741)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 8, 10, 16, 49, 220673)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 8, 10, 16, 49, 220673)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 8, 10, 16, 49, 220673)),
|
||||
),
|
||||
]
|
||||
44
authentication/migrations/0060_auto_20251213_1627.py
Normal file
44
authentication/migrations/0060_auto_20251213_1627.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# Generated by Django 3.2.13 on 2025-12-13 16:27
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0059_auto_20251208_1019'),
|
||||
]
|
||||
|
||||
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, 27, 37, 298878)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 13, 16, 27, 37, 298878)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 13, 16, 27, 37, 294668)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 13, 16, 27, 37, 294668)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 13, 16, 27, 37, 294668)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0061_auto_20251214_2351.py
Normal file
39
authentication/migrations/0061_auto_20251214_2351.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-12-14 23:51
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0060_auto_20251213_1627'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 15, 0, 51, 25, 812615)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 14, 23, 51, 25, 812636)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 14, 23, 51, 25, 809487)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 14, 23, 51, 25, 809419)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 14, 23, 51, 25, 809436)),
|
||||
),
|
||||
]
|
||||
39
authentication/migrations/0062_auto_20251217_1642.py
Normal file
39
authentication/migrations/0062_auto_20251217_1642.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.2.13 on 2025-12-17 16:42
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0061_auto_20251214_2351'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='expire',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 17, 17, 42, 16, 85358)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usermessage',
|
||||
name='time',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 17, 16, 42, 16, 85358)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='date_of_register',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 17, 16, 42, 16, 81784)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='hatching_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 17, 16, 42, 16, 81784)),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='last_party_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2025, 12, 17, 16, 42, 16, 81784)),
|
||||
),
|
||||
]
|
||||
0
authentication/migrations/__init__.py
Normal file
0
authentication/migrations/__init__.py
Normal file
548
authentication/models.py
Normal file
548
authentication/models.py
Normal 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)
|
||||
75
authentication/permission_views.py
Normal file
75
authentication/permission_views.py
Normal 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)
|
||||
329
authentication/permissions.py
Normal file
329
authentication/permissions.py
Normal 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
|
||||
4444
authentication/register.py
Normal file
4444
authentication/register.py
Normal file
File diff suppressed because it is too large
Load Diff
0
authentication/sahandsms/__init__.py
Normal file
0
authentication/sahandsms/__init__.py
Normal file
588
authentication/sahandsms/sms.py
Normal file
588
authentication/sahandsms/sms.py
Normal file
@@ -0,0 +1,588 @@
|
||||
# توابع مورد نیاز برای اتصال به ای پی آی سهند اس ام اس
|
||||
from panel.helper import check_mobile_number
|
||||
from ..models import SystemUserProfile
|
||||
import requests
|
||||
USERNAME_SMS='hamedan'
|
||||
PASSWORD_SMS='hamedan12345'
|
||||
USERNAME_SMS_FINANCIAL='hamedan'
|
||||
PASSWORD_SMS_FINANCIAL='hamedan12345'
|
||||
USERNAME_SMS_HAMEDAN='hamedan'
|
||||
PASSWORD_SMS_HAMEDAN='hamedan12345'
|
||||
OUT_SMS_USER='hamedan'
|
||||
OUT_SMS_PASS='hamedan12345'
|
||||
kill_house_price=15000
|
||||
|
||||
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")
|
||||
0
authentication/serializer/__init__.py
Normal file
0
authentication/serializer/__init__.py
Normal file
308
authentication/serializer/serializer.py
Normal file
308
authentication/serializer/serializer.py
Normal 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']
|
||||
|
||||
104
authentication/serializers.py
Normal file
104
authentication/serializers.py
Normal 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__'
|
||||
3245
authentication/sms_management.py
Normal file
3245
authentication/sms_management.py
Normal file
File diff suppressed because it is too large
Load Diff
3
authentication/tests.py
Normal file
3
authentication/tests.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
235
authentication/urls.py
Normal file
235
authentication/urls.py
Normal file
@@ -0,0 +1,235 @@
|
||||
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
3163
authentication/views.py
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user