diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 561a452..5ffcd2b 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,7 +1,14 @@ - + + + + + + + + + + @@ -85,11 +95,22 @@ - + + + + \ No newline at end of file diff --git a/apps/cuser/cuser_model.py b/apps/cuser/cuser_model.py new file mode 100644 index 0000000..6d96c29 --- /dev/null +++ b/apps/cuser/cuser_model.py @@ -0,0 +1,46 @@ +from django.db import models +from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, PermissionsMixin +from utils.base_model import BaseModel +import uuid + + +class CUserManager(BaseUserManager): + def create_user(self, username, password, **extra_fields): + if not username: + raise ValueError("Please Enter username") + user = self.model(username=username, **extra_fields) + user.set_password(password) + user.save() + return user + + def create_superuser(self, username, password, **extra_fields): + extra_fields.setdefault('is_staff', True) + extra_fields.setdefault('is_superuser', True) + extra_fields.setdefault('is_active', True) + + return self.create_user(username, password, **extra_fields) + + +class CUser(BaseModel, AbstractBaseUser, PermissionsMixin): + username = models.CharField(max_length=50, null=False, blank=False, unique=True) + mobile = models.PositiveBigIntegerField(null=False, blank=False, unique=True) + name_family = models.CharField(max_length=50, null=True, blank=True) + is_active = models.BooleanField(default=False) + is_staff = models.BooleanField(default=False) + is_superuser = models.BooleanField(default=False) + uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True) + + USERNAME_FIELD = 'username' + + objects = CUserManager() + + class Meta: + permissions = [ + ('user_is_workspace_owner', 'user is workspace owner'), + ('user_is_workspace_admin', 'user is workspace admin'), + ('user_is_workspace_operator', 'user is workspace operator'), + ('user_is_workspace_customer', 'user is workspace customer'), + ] + + def __str__(self): + return str(self.username) diff --git a/apps/cuser/migrations/0008_remove_cuserrole_cuser_cuserrole_sys_ws.py b/apps/cuser/migrations/0008_remove_cuserrole_cuser_cuserrole_sys_ws.py new file mode 100644 index 0000000..4c205bc --- /dev/null +++ b/apps/cuser/migrations/0008_remove_cuserrole_cuser_cuserrole_sys_ws.py @@ -0,0 +1,24 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:15 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('workspace', '0011_remove_workspace_cuser_owner'), + ('cuser', '0007_alter_cuser_mobile'), + ] + + operations = [ + migrations.RemoveField( + model_name='cuserrole', + name='cuser', + ), + migrations.AddField( + model_name='cuserrole', + name='sys_ws', + field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='workspace.workspace'), + ), + ] diff --git a/apps/cuser/migrations/0009_cuserrole_cuser.py b/apps/cuser/migrations/0009_cuserrole_cuser.py new file mode 100644 index 0000000..9204ce1 --- /dev/null +++ b/apps/cuser/migrations/0009_cuserrole_cuser.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:18 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('cuser', '0008_remove_cuserrole_cuser_cuserrole_sys_ws'), + ] + + operations = [ + migrations.AddField( + model_name='cuserrole', + name='cuser', + field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cuser_role', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/apps/cuser/models.py b/apps/cuser/models.py index 5e9f488..24b6282 100644 --- a/apps/cuser/models.py +++ b/apps/cuser/models.py @@ -1,53 +1,14 @@ from django.db import models from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, PermissionsMixin from utils.base_model import BaseModel -#from apps.workspace.models import Workspace as WorkspaceModel +from apps.workspace.models import Workspace as WorkspaceModel +#from apps.cuser.cuser_model import CUser import uuid - +from django.contrib.auth import get_user_model +CUser = get_user_model() # Create your models here. import random -class CUserManager(BaseUserManager): - def create_user(self, username, password, **extra_fields): - if not username: - raise ValueError("Please Enter username") - user = self.model(username=username, **extra_fields) - user.set_password(password) - user.save() - return user - - def create_superuser(self, username, password, **extra_fields): - extra_fields.setdefault('is_staff', True) - extra_fields.setdefault('is_superuser', True) - extra_fields.setdefault('is_active', True) - - return self.create_user(username, password, **extra_fields) - - -class CUser(BaseModel, AbstractBaseUser, PermissionsMixin): - username = models.CharField(max_length=50, null=False, blank=False, unique=True) - mobile = models.PositiveBigIntegerField(null=False, blank=False, unique=True) - name_family = models.CharField(max_length=50, null=True, blank=True) - is_active = models.BooleanField(default=False) - is_staff = models.BooleanField(default=False) - is_superuser = models.BooleanField(default=False) - uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True) - - USERNAME_FIELD = 'username' - - objects = CUserManager() - - class Meta: - permissions = [ - ('user_is_workspace_owner', 'user is workspace owner'), - ('user_is_workspace_admin', 'user is workspace admin'), - ('user_is_workspace_operator', 'user is workspace operator'), - ('user_is_workspace_customer', 'user is workspace customer'), - ] - - def __str__(self): - return str(self.username) - class RoleType(BaseModel): role_name = models.CharField(max_length=20, null=False, blank=False) @@ -58,13 +19,13 @@ class RoleType(BaseModel): class CuserRole(BaseModel): - cuser = models.ForeignKey(CUser, on_delete=models.CASCADE, related_name='cuser_role') + cuser = models.ForeignKey(CUser, on_delete=models.CASCADE, related_name='cuser_role', null=True, blank=True, default=None) role_type = models.ForeignKey(RoleType, on_delete=models.CASCADE, related_name='role_type') name_family = models.CharField(max_length=30, null=False, blank=False) title = models.CharField(max_length=30, null=True, blank=True) mobile = models.PositiveBigIntegerField(null=False, blank=False) mobile_verify = models.BooleanField(default=False) - #sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=True, blank=True, default=None) + sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=True, blank=True, default=None) uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True) is_active = models.BooleanField(default=False) diff --git a/apps/jwt_auth/migrations/0065_alter_cuserroleloginopt_uuid.py b/apps/jwt_auth/migrations/0065_alter_cuserroleloginopt_uuid.py new file mode 100644 index 0000000..20316fd --- /dev/null +++ b/apps/jwt_auth/migrations/0065_alter_cuserroleloginopt_uuid.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.1 on 2024-01-22 11:56 + +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('jwt_auth', '0064_alter_cuserroleloginopt_uuid'), + ] + + operations = [ + migrations.AlterField( + model_name='cuserroleloginopt', + name='uuid', + field=models.UUIDField(default=uuid.UUID('986054d5-6c6a-41c8-8038-509a2f770920'), unique=True), + ), + ] diff --git a/apps/jwt_auth/migrations/0066_alter_cuserroleloginopt_uuid.py b/apps/jwt_auth/migrations/0066_alter_cuserroleloginopt_uuid.py new file mode 100644 index 0000000..a28794c --- /dev/null +++ b/apps/jwt_auth/migrations/0066_alter_cuserroleloginopt_uuid.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:15 + +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('jwt_auth', '0065_alter_cuserroleloginopt_uuid'), + ] + + operations = [ + migrations.AlterField( + model_name='cuserroleloginopt', + name='uuid', + field=models.UUIDField(default=uuid.UUID('584844cb-8111-4a12-867a-3d70e30dcfb6'), unique=True), + ), + ] diff --git a/apps/jwt_auth/migrations/0067_alter_cuserroleloginopt_uuid.py b/apps/jwt_auth/migrations/0067_alter_cuserroleloginopt_uuid.py new file mode 100644 index 0000000..52b0f13 --- /dev/null +++ b/apps/jwt_auth/migrations/0067_alter_cuserroleloginopt_uuid.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:18 + +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('jwt_auth', '0066_alter_cuserroleloginopt_uuid'), + ] + + operations = [ + migrations.AlterField( + model_name='cuserroleloginopt', + name='uuid', + field=models.UUIDField(default=uuid.UUID('c7bc67b3-1e7d-401d-bf08-313aeefa7d5a'), unique=True), + ), + ] diff --git a/apps/jwt_auth/migrations/0068_alter_cuserroleloginopt_uuid.py b/apps/jwt_auth/migrations/0068_alter_cuserroleloginopt_uuid.py new file mode 100644 index 0000000..006c7b2 --- /dev/null +++ b/apps/jwt_auth/migrations/0068_alter_cuserroleloginopt_uuid.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:27 + +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('jwt_auth', '0067_alter_cuserroleloginopt_uuid'), + ] + + operations = [ + migrations.AlterField( + model_name='cuserroleloginopt', + name='uuid', + field=models.UUIDField(default=uuid.UUID('06719a2e-9a73-40eb-8cb5-0b0c7c84a02a'), unique=True), + ), + ] diff --git a/apps/jwt_auth/migrations/0069_cuserroleloginopt_cuser_alter_cuserroleloginopt_uuid.py b/apps/jwt_auth/migrations/0069_cuserroleloginopt_cuser_alter_cuserroleloginopt_uuid.py new file mode 100644 index 0000000..c8bc0cf --- /dev/null +++ b/apps/jwt_auth/migrations/0069_cuserroleloginopt_cuser_alter_cuserroleloginopt_uuid.py @@ -0,0 +1,27 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:00 + +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), + ('jwt_auth', '0068_alter_cuserroleloginopt_uuid'), + ] + + operations = [ + migrations.AddField( + model_name='cuserroleloginopt', + name='cuser', + field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='cuserroleloginopt', + name='uuid', + field=models.UUIDField(default=uuid.UUID('a2dc6ce3-baa8-4757-a3d7-5bd2f3536bee'), unique=True), + ), + ] diff --git a/apps/jwt_auth/migrations/0070_alter_cuserroleloginopt_uuid.py b/apps/jwt_auth/migrations/0070_alter_cuserroleloginopt_uuid.py new file mode 100644 index 0000000..32ad9a3 --- /dev/null +++ b/apps/jwt_auth/migrations/0070_alter_cuserroleloginopt_uuid.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:12 + +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('jwt_auth', '0069_cuserroleloginopt_cuser_alter_cuserroleloginopt_uuid'), + ] + + operations = [ + migrations.AlterField( + model_name='cuserroleloginopt', + name='uuid', + field=models.UUIDField(default=uuid.UUID('962e1abb-3dd5-42dc-a749-7004ed7324cf'), unique=True), + ), + ] diff --git a/apps/jwt_auth/migrations/0071_alter_cuserroleloginopt_uuid.py b/apps/jwt_auth/migrations/0071_alter_cuserroleloginopt_uuid.py new file mode 100644 index 0000000..079f7b5 --- /dev/null +++ b/apps/jwt_auth/migrations/0071_alter_cuserroleloginopt_uuid.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:15 + +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('jwt_auth', '0070_alter_cuserroleloginopt_uuid'), + ] + + operations = [ + migrations.AlterField( + model_name='cuserroleloginopt', + name='uuid', + field=models.UUIDField(default=uuid.UUID('7cd27c2c-3ce2-47c1-875d-eb840112f4e9'), unique=True), + ), + ] diff --git a/apps/jwt_auth/migrations/0072_alter_cuserroleloginopt_uuid.py b/apps/jwt_auth/migrations/0072_alter_cuserroleloginopt_uuid.py new file mode 100644 index 0000000..d2ac1ee --- /dev/null +++ b/apps/jwt_auth/migrations/0072_alter_cuserroleloginopt_uuid.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:15 + +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('jwt_auth', '0071_alter_cuserroleloginopt_uuid'), + ] + + operations = [ + migrations.AlterField( + model_name='cuserroleloginopt', + name='uuid', + field=models.UUIDField(default=uuid.UUID('a3e7aa0d-2516-4035-9b23-943f9e3b992e'), unique=True), + ), + ] diff --git a/apps/jwt_auth/models.py b/apps/jwt_auth/models.py index bf8e6ba..ab84c9d 100644 --- a/apps/jwt_auth/models.py +++ b/apps/jwt_auth/models.py @@ -20,5 +20,6 @@ class JwtToken(models.Model): class CUserRoleLoginOpt(models.Model): cuser_role = models.ForeignKey(CuserRoleModel, on_delete=models.CASCADE) + cuser = models.ForeignKey(CUser, null=True, blank=True, default=None, on_delete=models.CASCADE) expire = models.DateTimeField(null=False, blank=False) uuid = models.UUIDField(default=uuid.uuid4(), unique=True, null=False, blank=False) diff --git a/apps/jwt_auth/services.py b/apps/jwt_auth/services.py index 1c00f76..24c375b 100644 --- a/apps/jwt_auth/services.py +++ b/apps/jwt_auth/services.py @@ -28,6 +28,7 @@ def login_by_username(username: str, password: str) -> CUserRoleLoginOpt: user_role_opt = CUserRoleLoginOpt() user_role_opt.cuser_role = user_role_obj + user_role_opt.cuser = user_role_obj.cuser user_role_opt.expire = expire_datetime user_role_opt.uuid = uuid.uuid4() user_role_opt.save() @@ -47,9 +48,7 @@ def login_by_username(username: str, password: str) -> CUserRoleLoginOpt: def login_by_mobile(mobile: int): try: - exists_cuser_roles = CuserRoleModel.objects.filter(mobile=mobile, mobile_verify=True) - if not len(exists_cuser_roles) >= 1: - raise exceptions.ValidationError({'error': "mobile not found"}) + exists_cuser = CUser.objects.get(mobile=mobile) random_number = random.randint(100000, 999999) @@ -70,7 +69,7 @@ def verify_mobile_and_get_token(mobile: int, opt: int) -> CUserRoleLoginOpt: opt_obj = SmsOptModel.objects.filter(mobile=mobile, opt=opt)[0] if opt_obj: - cuser_roles = CuserRoleModel.objects.filter(mobile=mobile, mobile_verify=True, is_active=True) + cuser_roles = CuserRoleModel.objects.filter(cuser__mobile=mobile, is_active=True) CUserRoleLoginOpt.objects.filter(cuser_role__in=cuser_roles).delete() if cuser_roles: @@ -79,6 +78,7 @@ def verify_mobile_and_get_token(mobile: int, opt: int) -> CUserRoleLoginOpt: user_role_opt = CUserRoleLoginOpt() user_role_opt.cuser_role = user_role_obj + user_role_opt.cuser = user_role_obj.cuser user_role_opt.expire = expire_datetime user_role_opt.uuid = uuid.uuid4() user_role_opt.save() diff --git a/apps/jwt_auth/views.py b/apps/jwt_auth/views.py index 775d27f..2796a05 100644 --- a/apps/jwt_auth/views.py +++ b/apps/jwt_auth/views.py @@ -50,12 +50,8 @@ class VerifyMobileAndGetTokenView(APIView): serializer = self.InputSerializer(data=request.data) serializer.is_valid(raise_exception=True) - print("ok") - login_opts = verify_mobile_and_get_token(**serializer.validated_data) - print("ok2") - response_data = self.OutputSerializer(login_opts, many=True).data return Response(response_data) @@ -140,9 +136,12 @@ class CustomTokenObtainPairView(APIView): try: user_login_opt = CUserRoleLoginOpt.objects.get(uuid=uuid_opt) - user = user_login_opt.cuser_role.cuser + user = user_login_opt.cuser cuser_role = user_login_opt.cuser_role + + workspace = cuser_role.sys_ws + if user_login_opt: refresh = RefreshToken.for_user(user) @@ -151,15 +150,15 @@ class CustomTokenObtainPairView(APIView): #print(cuser_role.uuid) - try: - customerObj = CustomerModel.objects.get(cuser_role__uuid=str(cuser_role.uuid)) + '''try: + #customerObj = CustomerModel.objects.get(cuser_role__uuid=str(cuser_role.uuid)) + # workspace = customerObj.sys_ws - #workspace = WorkspaceModel.objects.get(cuser_role_owner__uuid=str(cuser_role.uuid)) + workspace = cuser_role.sys_ws - workspace = customerObj.sys_ws except: operator = CustomerResponsibleModel.objects.get(cuser_role=cuser_role) - workspace = operator.sys_ws + workspace = operator.sys_ws''' refresh['workspace_uuid'] = str(workspace.uuid) @@ -174,7 +173,10 @@ class CustomTokenObtainPairView(APIView): cuser=user, cuser_role=cuser_role) jwt_db.save() - CUserRoleLoginOpt.objects.filter(cuser_role__cuser=user).delete() + try: + CUserRoleLoginOpt.objects.filter(cuser=user).delete() + except Exception as exp: + pass except Exception as exp: return Response({'error': str(exp)}) diff --git a/apps/lead/migrations/0020_alter_lead_status.py b/apps/lead/migrations/0020_alter_lead_status.py new file mode 100644 index 0000000..7df04d5 --- /dev/null +++ b/apps/lead/migrations/0020_alter_lead_status.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-22 11:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('lead', '0019_alter_lead_status'), + ] + + operations = [ + migrations.AlterField( + model_name='lead', + name='status', + field=models.CharField(blank=True, choices=[('SU', 'OK'), ('UN', 'unknown'), ('FA', 'FAIL')], default='UN', max_length=2, null=True), + ), + ] diff --git a/apps/lead/migrations/0021_alter_lead_status.py b/apps/lead/migrations/0021_alter_lead_status.py new file mode 100644 index 0000000..e8dace6 --- /dev/null +++ b/apps/lead/migrations/0021_alter_lead_status.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('lead', '0020_alter_lead_status'), + ] + + operations = [ + migrations.AlterField( + model_name='lead', + name='status', + field=models.CharField(blank=True, choices=[('UN', 'unknown'), ('FA', 'FAIL'), ('SU', 'OK')], default='UN', max_length=2, null=True), + ), + ] diff --git a/apps/lead/migrations/0022_alter_lead_status.py b/apps/lead/migrations/0022_alter_lead_status.py new file mode 100644 index 0000000..a0f91dc --- /dev/null +++ b/apps/lead/migrations/0022_alter_lead_status.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('lead', '0021_alter_lead_status'), + ] + + operations = [ + migrations.AlterField( + model_name='lead', + name='status', + field=models.CharField(blank=True, choices=[('SU', 'OK'), ('UN', 'unknown'), ('FA', 'FAIL')], default='UN', max_length=2, null=True), + ), + ] diff --git a/apps/lead/migrations/0023_alter_lead_status.py b/apps/lead/migrations/0023_alter_lead_status.py new file mode 100644 index 0000000..52b94d8 --- /dev/null +++ b/apps/lead/migrations/0023_alter_lead_status.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('lead', '0022_alter_lead_status'), + ] + + operations = [ + migrations.AlterField( + model_name='lead', + name='status', + field=models.CharField(blank=True, choices=[('FA', 'FAIL'), ('SU', 'OK'), ('UN', 'unknown')], default='UN', max_length=2, null=True), + ), + ] diff --git a/apps/lead/migrations/0024_alter_lead_status.py b/apps/lead/migrations/0024_alter_lead_status.py new file mode 100644 index 0000000..d4a4cd7 --- /dev/null +++ b/apps/lead/migrations/0024_alter_lead_status.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:00 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('lead', '0023_alter_lead_status'), + ] + + operations = [ + migrations.AlterField( + model_name='lead', + name='status', + field=models.CharField(blank=True, choices=[('SU', 'OK'), ('UN', 'unknown'), ('FA', 'FAIL')], default='UN', max_length=2, null=True), + ), + ] diff --git a/apps/lead/migrations/0025_alter_lead_status.py b/apps/lead/migrations/0025_alter_lead_status.py new file mode 100644 index 0000000..e10baeb --- /dev/null +++ b/apps/lead/migrations/0025_alter_lead_status.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('lead', '0024_alter_lead_status'), + ] + + operations = [ + migrations.AlterField( + model_name='lead', + name='status', + field=models.CharField(blank=True, choices=[('FA', 'FAIL'), ('UN', 'unknown'), ('SU', 'OK')], default='UN', max_length=2, null=True), + ), + ] diff --git a/apps/lead/migrations/0026_alter_lead_status.py b/apps/lead/migrations/0026_alter_lead_status.py new file mode 100644 index 0000000..ca237fd --- /dev/null +++ b/apps/lead/migrations/0026_alter_lead_status.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('lead', '0025_alter_lead_status'), + ] + + operations = [ + migrations.AlterField( + model_name='lead', + name='status', + field=models.CharField(blank=True, choices=[('SU', 'OK'), ('FA', 'FAIL'), ('UN', 'unknown')], default='UN', max_length=2, null=True), + ), + ] diff --git a/apps/lead/migrations/0027_alter_lead_status.py b/apps/lead/migrations/0027_alter_lead_status.py new file mode 100644 index 0000000..3303920 --- /dev/null +++ b/apps/lead/migrations/0027_alter_lead_status.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('lead', '0026_alter_lead_status'), + ] + + operations = [ + migrations.AlterField( + model_name='lead', + name='status', + field=models.CharField(blank=True, choices=[('FA', 'FAIL'), ('UN', 'unknown'), ('SU', 'OK')], default='UN', max_length=2, null=True), + ), + ] diff --git a/apps/media/test.py b/apps/media/test.py new file mode 100644 index 0000000..e69de29 diff --git a/apps/reminder/migrations/0017_alter_reminder_type.py b/apps/reminder/migrations/0017_alter_reminder_type.py new file mode 100644 index 0000000..f09da5e --- /dev/null +++ b/apps/reminder/migrations/0017_alter_reminder_type.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reminder', '0016_alter_reminder_type'), + ] + + operations = [ + migrations.AlterField( + model_name='reminder', + name='type', + field=models.CharField(choices=[('UN', 'UNKNOWN'), ('LE', 'LEAD'), ('NO', 'NOTE'), ('CU', 'CUSTOMER')], default='UN', max_length=2), + ), + ] diff --git a/apps/reminder/migrations/0018_alter_reminder_type.py b/apps/reminder/migrations/0018_alter_reminder_type.py new file mode 100644 index 0000000..3bec28b --- /dev/null +++ b/apps/reminder/migrations/0018_alter_reminder_type.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reminder', '0017_alter_reminder_type'), + ] + + operations = [ + migrations.AlterField( + model_name='reminder', + name='type', + field=models.CharField(choices=[('NO', 'NOTE'), ('UN', 'UNKNOWN'), ('CU', 'CUSTOMER'), ('LE', 'LEAD')], default='UN', max_length=2), + ), + ] diff --git a/apps/reminder/migrations/0019_alter_reminder_type.py b/apps/reminder/migrations/0019_alter_reminder_type.py new file mode 100644 index 0000000..3cd9965 --- /dev/null +++ b/apps/reminder/migrations/0019_alter_reminder_type.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reminder', '0018_alter_reminder_type'), + ] + + operations = [ + migrations.AlterField( + model_name='reminder', + name='type', + field=models.CharField(choices=[('UN', 'UNKNOWN'), ('NO', 'NOTE'), ('LE', 'LEAD'), ('CU', 'CUSTOMER')], default='UN', max_length=2), + ), + ] diff --git a/apps/reminder/migrations/0020_alter_reminder_type.py b/apps/reminder/migrations/0020_alter_reminder_type.py new file mode 100644 index 0000000..1438de7 --- /dev/null +++ b/apps/reminder/migrations/0020_alter_reminder_type.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:00 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reminder', '0019_alter_reminder_type'), + ] + + operations = [ + migrations.AlterField( + model_name='reminder', + name='type', + field=models.CharField(choices=[('CU', 'CUSTOMER'), ('NO', 'NOTE'), ('UN', 'UNKNOWN'), ('LE', 'LEAD')], default='UN', max_length=2), + ), + ] diff --git a/apps/reminder/migrations/0021_alter_reminder_type.py b/apps/reminder/migrations/0021_alter_reminder_type.py new file mode 100644 index 0000000..66776ae --- /dev/null +++ b/apps/reminder/migrations/0021_alter_reminder_type.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reminder', '0020_alter_reminder_type'), + ] + + operations = [ + migrations.AlterField( + model_name='reminder', + name='type', + field=models.CharField(choices=[('CU', 'CUSTOMER'), ('LE', 'LEAD'), ('UN', 'UNKNOWN'), ('NO', 'NOTE')], default='UN', max_length=2), + ), + ] diff --git a/apps/reminder/migrations/0022_alter_reminder_type.py b/apps/reminder/migrations/0022_alter_reminder_type.py new file mode 100644 index 0000000..e165c8a --- /dev/null +++ b/apps/reminder/migrations/0022_alter_reminder_type.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reminder', '0021_alter_reminder_type'), + ] + + operations = [ + migrations.AlterField( + model_name='reminder', + name='type', + field=models.CharField(choices=[('UN', 'UNKNOWN'), ('NO', 'NOTE'), ('CU', 'CUSTOMER'), ('LE', 'LEAD')], default='UN', max_length=2), + ), + ] diff --git a/apps/workspace/migrations/0010_remove_workspace_cuser_role_owner.py b/apps/workspace/migrations/0010_remove_workspace_cuser_role_owner.py new file mode 100644 index 0000000..76153e1 --- /dev/null +++ b/apps/workspace/migrations/0010_remove_workspace_cuser_role_owner.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.1 on 2024-01-22 11:56 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('workspace', '0009_alter_workspace_username'), + ] + + operations = [ + migrations.RemoveField( + model_name='workspace', + name='cuser_role_owner', + ), + ] diff --git a/apps/workspace/migrations/0011_remove_workspace_cuser_owner.py b/apps/workspace/migrations/0011_remove_workspace_cuser_owner.py new file mode 100644 index 0000000..ddc926d --- /dev/null +++ b/apps/workspace/migrations/0011_remove_workspace_cuser_owner.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:15 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('workspace', '0010_remove_workspace_cuser_role_owner'), + ] + + operations = [ + migrations.RemoveField( + model_name='workspace', + name='cuser_owner', + ), + ] diff --git a/apps/workspace/migrations/0012_workspace_cuser_owner.py b/apps/workspace/migrations/0012_workspace_cuser_owner.py new file mode 100644 index 0000000..908687f --- /dev/null +++ b/apps/workspace/migrations/0012_workspace_cuser_owner.py @@ -0,0 +1,21 @@ +# Generated by Django 4.2.1 on 2024-01-22 12:27 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('workspace', '0011_remove_workspace_cuser_owner'), + ] + + operations = [ + migrations.AddField( + model_name='workspace', + name='cuser_owner', + field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/apps/workspace/migrations/0013_alter_workspace_cuser_owner.py b/apps/workspace/migrations/0013_alter_workspace_cuser_owner.py new file mode 100644 index 0000000..e115ccc --- /dev/null +++ b/apps/workspace/migrations/0013_alter_workspace_cuser_owner.py @@ -0,0 +1,21 @@ +# Generated by Django 4.2.1 on 2024-01-23 05:00 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('workspace', '0012_workspace_cuser_owner'), + ] + + operations = [ + migrations.AlterField( + model_name='workspace', + name='cuser_owner', + field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/apps/workspace/models.py b/apps/workspace/models.py index 1ecbc09..a3853ce 100644 --- a/apps/workspace/models.py +++ b/apps/workspace/models.py @@ -1,15 +1,17 @@ from django.db import models from utils.base_model import BaseModel import uuid -from apps.cuser.models import CuserRole as CuserRoleModel -from apps.cuser.models import CUser as CUserModel +from django.contrib.auth import get_user_model +from apps.cuser.cuser_model import CUser # Create your models here. +#CUserM2 = get_user_model() class Workspace(BaseModel): - cuser_role_owner = models.OneToOneField(CuserRoleModel, on_delete=models.CASCADE, - related_name='workspace', null=True, blank=True) - cuser_owner = models.ForeignKey(CUserModel, on_delete=models.CASCADE, null=True, blank=True, default=None) + #cuser_role_owner = models.OneToOneField(CuserRoleModel, on_delete=models.CASCADE, + # related_name='workspace', null=True, blank=True) + + cuser_owner = models.ForeignKey(CUser, on_delete=models.SET_NULL, null=True, blank=True, default=None) name = models.CharField(max_length=15, null=False, blank=False) username = models.CharField(max_length=30, null=False, blank=False, unique=True) expire = models.DateTimeField(null=True, blank=True)