From 6a4de4e08cc7a72c34d5cc84c2414a6d430a465a Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Thu, 27 Nov 2025 14:54:26 +0000 Subject: [PATCH] 1.0 --- config/__pycache__/settings.cpython-311.pyc | Bin 5552 -> 5587 bytes config/settings.py | 2 + core/__pycache__/models.cpython-311.pyc | Bin 209 -> 2625 bytes core/migrations/0001_initial.py | 69 ++++++++++++++++++ .../__pycache__/0001_initial.cpython-311.pyc | Bin 0 -> 5176 bytes core/models.py | 32 +++++++- 6 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 core/migrations/0001_initial.py create mode 100644 core/migrations/__pycache__/0001_initial.cpython-311.pyc diff --git a/config/__pycache__/settings.cpython-311.pyc b/config/__pycache__/settings.cpython-311.pyc index 5be02db206d695487566bb415cb6b1e287631fb4..e8303189b0696b366e10931ac579313042fd120e 100644 GIT binary patch delta 134 zcmdm>eOa4#IWI340}v#KYh)%*P_2Aikz^D~*=;&%)U@rVx%b`6U6^>=agDdGW|QX~i>_<_VP4x8Nkl+v73yP|X; Zml24IA8tM+c$=B;fskwiKL~gKeStv;h`>q#+36T# diff --git a/config/settings.py b/config/settings.py index 291d043..a9f371c 100644 --- a/config/settings.py +++ b/config/settings.py @@ -180,3 +180,5 @@ if EMAIL_USE_SSL: # https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +AUTH_USER_MODEL = "core.User" diff --git a/core/__pycache__/models.cpython-311.pyc b/core/__pycache__/models.cpython-311.pyc index 9aa598b9d5171b2bb0d207f045e07f9fbbb95a64..d439abd1860353fbfa8b04244875254b9966b722 100644 GIT binary patch literal 2625 zcmcImO>7fK6rTOJV>^lM(h3TK@YCX|N>ouH4hWPcp`|~e)B##I?rO6$U?*!kon5OK z_25G*MJk8fxN=H~!hu6o^~jOqM%sfl*Pe1S3MVe@d$V>zNCXjT$M&~x=Y2ar?|u8m zzh^Q71X}sV>FTdKA%EjdzZpGa^C1}b2qjeUNKGjz3fiit*0hqQ5S4sNsP+q?I#X6O zLe}6Hw~{V>2KY>-&G*M6FR@I?vVfI%1bxvYF!xPc-g?za0{TIiGiAP z+xA%fR!|X^TWM5X<_n9mn@-aUrVExx*mm8iG20dcwhh~CdT6I@`^To^^*q^Y#i?)X zneV=yvL`;fa(QB^$RX)OBqu5kzf@%&70D(<$_`qKY?W++k31h8t2AnCtU1@L2hA~d zo4L)P!N-1T@CAR-aoL#L;A|`o?C4^PoA8hX9NIqv(BArVRpX!;>Ib@Mk{ww#qv2x@ zJ_*lV4vVwlaCv>W91WM-m+`|7^+(w|SCio0&K2ZIo5$&7V+P#eDrBR|L-nPMSt!?1 zg6fbrgC~GCv#N?@qi%yZSinSTkymRDZ`lj1`?}tF1sZ*S11mN=k;TX-J_uHK+nSa|L3whH;Xul-egRO`$H8GBg2FNpc)_ zh93chT4Kz3PJMw7!QF<6U3&bI((0{h;EO@ZTo93GFM9Bj_(HEYJ&%6~#5YkCAAtw? zafDLS-Ku&j@+LNGllg`A<7im zmpZvq%kM?GQ;%|w$3cwW&W5@2dafMh%Iz;Y*^|p}N7<8))W;t^`8d4seVCnH&(22K z+4kqJ(JC%+hgP=^gbH~6Gp%Z%LVX2yTpA_;Zmd{4{ z6A%2qPKNo5>-mdO{$l&f*CZ7ugF-0|(RrtSt1;>}>H)9LjXKSsG8&&%Tmz0s_6T%N zR?)a@8eiexgt#_J1`R}CCJCW9bHXPlnyx)?)-Mh;c(}-t6Rzs zN|)@7OXr_T&$Ac(IbDIGyBn5n-u0eh|Fdmp+CuJbh`G>@Blj3N1FhY#bp7t^Q|y1X Jhf`LTe*vPYGRyz~ delta 164 zcmX>oa*;7%IWI340}!mp_?2M^q#uJgFu(+5d=>&SrZc24q%h_%KBI%P(f)d0X Xi)Det2WCb_#v2SW7qFosHlPXs*6Sme diff --git a/core/migrations/0001_initial.py b/core/migrations/0001_initial.py new file mode 100644 index 0000000..debde3d --- /dev/null +++ b/core/migrations/0001_initial.py @@ -0,0 +1,69 @@ +# Generated by Django 5.2.7 on 2025-11-27 13:51 + +import django.contrib.auth.models +import django.contrib.auth.validators +import django.db.models.deletion +import django.utils.timezone +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('auth', '0012_alter_user_first_name_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), + ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), + ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), + ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), + ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('user_type', models.CharField(choices=[('student', 'Student'), ('teacher', 'Teacher'), ('client', 'Client'), ('admin', 'Admin')], default='student', max_length=10)), + ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), + ], + options={ + 'verbose_name': 'user', + 'verbose_name_plural': 'users', + 'abstract': False, + }, + managers=[ + ('objects', django.contrib.auth.models.UserManager()), + ], + ), + migrations.CreateModel( + name='Client', + fields=[ + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)), + ('company_name', models.CharField(blank=True, max_length=255)), + ], + ), + migrations.CreateModel( + name='Student', + fields=[ + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Teacher', + fields=[ + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)), + ('skills', models.TextField(blank=True)), + ('hourly_rate', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True)), + ('daily_rate', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True)), + ], + ), + ] diff --git a/core/migrations/__pycache__/0001_initial.cpython-311.pyc b/core/migrations/__pycache__/0001_initial.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6a6277d335059ae37a31cd70835ee2b45b9a4fe3 GIT binary patch literal 5176 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