Commit 6d7d3f44 authored by Florent Chehab's avatar Florent Chehab

Migrated from standard Django model to a custom one for optmization concerns

parent e8f37050
from django.contrib.auth.models import User from base_app.models import User
import os import os
......
import os import os
from django.contrib.auth.models import User from base_app.models import User
import pandas as pd import pandas as pd
from backend_app.models.country import Country from backend_app.models.country import Country
......
...@@ -2,7 +2,7 @@ import csv ...@@ -2,7 +2,7 @@ import csv
import os import os
from decimal import Decimal from decimal import Decimal
from django.contrib.auth.models import User from base_app.models import User
from backend_app.models.currency import Currency from backend_app.models.currency import Currency
......
from django.contrib.auth.models import User from base_app.models import User
from django.utils import timezone from django.utils import timezone
import reversion import reversion
......
import json import json
import os import os
from django.contrib.auth.models import User from base_app.models import User
from backend_app.models.tag import Tag from backend_app.models.tag import Tag
......
import os import os
from django.contrib.auth.models import User from base_app.models import User
import pandas as pd import pandas as pd
from backend_app.models.campus import Campus from backend_app.models.campus import Campus
......
from datetime import datetime from datetime import datetime
from django.contrib.auth.models import User from base_app.models import User
from backend_app.models.country import Country, CountryScholarship from backend_app.models.country import Country, CountryScholarship
from backend_app.models.currency import Currency from backend_app.models.currency import Currency
......
# Generated by Django 2.0.3 on 2018-09-16 13:55
import backend_app.models.university.university
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [("backend_app", "0001_initial")]
operations = [
migrations.AlterField(
model_name="campus",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="campus",
name="name",
field=models.CharField(blank=True, default="", max_length=200),
),
migrations.AlterField(
model_name="campus",
name="title",
field=models.CharField(blank=True, default="", max_length=150),
),
migrations.AlterField(
model_name="campustaggeditem",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="campustaggeditem",
name="title",
field=models.CharField(blank=True, default="", max_length=150),
),
migrations.AlterField(
model_name="city",
name="area",
field=models.CharField(blank=True, default="", max_length=200),
),
migrations.AlterField(
model_name="city",
name="local_name",
field=models.CharField(blank=True, default="", max_length=200),
),
migrations.AlterField(
model_name="citytaggeditem",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="citytaggeditem",
name="title",
field=models.CharField(blank=True, default="", max_length=150),
),
migrations.AlterField(
model_name="country",
name="intermediate_region_name",
field=models.CharField(blank=True, default="", max_length=200),
),
migrations.AlterField(
model_name="country",
name="intermediate_region_un_code",
field=models.CharField(blank=True, default="", max_length=3),
),
migrations.AlterField(
model_name="country",
name="iso_alpha3_code",
field=models.CharField(blank=True, default="", max_length=3, unique=True),
),
migrations.AlterField(
model_name="country",
name="sub_region_name",
field=models.CharField(blank=True, default="", max_length=200),
),
migrations.AlterField(
model_name="country",
name="sub_region_un_code",
field=models.CharField(blank=True, default="", max_length=3),
),
migrations.AlterField(
model_name="countrydri",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="countrydri",
name="title",
field=models.CharField(blank=True, default="", max_length=150),
),
migrations.AlterField(
model_name="countryscholarship",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="countryscholarship",
name="other_advantages",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="countryscholarship",
name="title",
field=models.CharField(blank=True, default="", max_length=150),
),
migrations.AlterField(
model_name="countrytaggeditem",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="countrytaggeditem",
name="title",
field=models.CharField(blank=True, default="", max_length=150),
),
migrations.AlterField(
model_name="currency",
name="symbol",
field=models.CharField(blank=True, default="", max_length=30),
),
migrations.AlterField(
model_name="previousdeparturefeedback",
name="adequation_comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="previousdeparturefeedback",
name="integration_comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="recommendation",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="university",
name="acronym",
field=models.CharField(blank=True, default="", max_length=20),
),
migrations.AlterField(
model_name="university",
name="logo",
field=models.URLField(
blank=True,
default="",
validators=[
backend_app.models.university.university.validate_extension_django
],
),
),
migrations.AlterField(
model_name="university",
name="website",
field=models.URLField(blank=True, default="", max_length=300),
),
migrations.AlterField(
model_name="universitydri",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="universitydri",
name="title",
field=models.CharField(blank=True, default="", max_length=150),
),
migrations.AlterField(
model_name="universityinfo",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="universityinfo",
name="title",
field=models.CharField(blank=True, default="", max_length=150),
),
migrations.AlterField(
model_name="universityscholarship",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="universityscholarship",
name="other_advantages",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="universityscholarship",
name="title",
field=models.CharField(blank=True, default="", max_length=150),
),
migrations.AlterField(
model_name="universitysemestersdates",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="universitysemestersdates",
name="title",
field=models.CharField(blank=True, default="", max_length=150),
),
migrations.AlterField(
model_name="universitytaggeditem",
name="comment",
field=models.CharField(blank=True, default="", max_length=5000),
),
migrations.AlterField(
model_name="universitytaggeditem",
name="title",
field=models.CharField(blank=True, default="", max_length=150),
),
]
# Generated by Django 2.0.3 on 2018-09-16 14:24
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [("backend_app", "0002_auto_20180916_1555")]
operations = [
migrations.AlterField(
model_name="countryscholarship",
name="frequency",
field=models.CharField(
blank=True,
choices=[
("w", "week"),
("m", "month"),
("s", "semester"),
("y", "year"),
("o", "one_shot"),
],
default="m",
max_length=1,
null=True,
),
),
migrations.AlterField(
model_name="universityscholarship",
name="frequency",
field=models.CharField(
blank=True,
choices=[
("w", "week"),
("m", "month"),
("s", "semester"),
("y", "year"),
("o", "one_shot"),
],
default="m",
max_length=1,
null=True,
),
),
]
# Generated by Django 2.1.7 on 2019-03-10 10:51
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [("backend_app", "0003_auto_20180916_1624")]
operations = [
migrations.RemoveField(model_name="semester", name="moderated_by"),
migrations.RemoveField(model_name="semester", name="updated_by"),
migrations.RemoveField(model_name="userdata", name="black_list"),
migrations.AddField(
model_name="offer",
name="year",
field=models.PositiveIntegerField(default=2018),
),
migrations.AddField(
model_name="previousdeparture",
name="year",
field=models.PositiveIntegerField(default=2018),
),
migrations.AlterField(
model_name="offer",
name="semester",
field=models.CharField(
choices=[("a", "autumn"), ("p", "spring")], default="a", max_length=2
),
),
migrations.AlterField(
model_name="previousdeparture",
name="semester",
field=models.CharField(
choices=[("a", "autumn"), ("p", "spring")], default="a", max_length=2
),
),
migrations.AlterUniqueTogether(name="offer", unique_together=set()),
migrations.DeleteModel(name="Semester"),
]
from django.contrib.auth.models import User from base_app.models import User
from django.contrib.contenttypes.fields import GenericRelation from django.contrib.contenttypes.fields import GenericRelation
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.core.validators import MinValueValidator from django.core.validators import MinValueValidator
......
from django.contrib.auth.models import User from base_app.models import User
from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.db import models from django.db import models
......
from django.db import models from django.db import models
from backend_app.models.other_core.specialty import Specialty from backend_app.models.other_core.specialty import Specialty
from backend_app.models.university import University from backend_app.models.university import University
from django.contrib.auth.models import User from base_app.models import User
from backend_app.fields import JSONField from backend_app.fields import JSONField
from backend_app.models.abstract.my_model import ( from backend_app.models.abstract.my_model import (
MyModel, MyModel,
......
from django.contrib.auth.models import User from base_app.models import User
from django.db import models from django.db import models
from backend_app.fields import JSONField from backend_app.fields import JSONField
from backend_app.models.abstract.my_model import ( from backend_app.models.abstract.my_model import (
......
from django.db import models from django.db import models
from rest_framework import serializers from rest_framework import serializers
from django.contrib.auth.models import User from base_app.models import User
from backend_app.models.abstract.my_model import ( from backend_app.models.abstract.my_model import (
MyModel, MyModel,
MyModelSerializer, MyModelSerializer,
......
from typing import List from typing import List
from django.contrib.auth.models import User from base_app.models import User
from shared import get_api_objs from shared import get_api_objs
......
from django.db.models.signals import post_save from django.db.models.signals import post_save
from django.contrib.auth.models import User from base_app.models import User
from backend_app.models.user import UserData from backend_app.models.user import UserData
......
from django.test import TestCase from django.test import TestCase
from django.contrib.auth.models import User from base_app.models import User
from backend_app.models.user import UserData from backend_app.models.user import UserData
from backend_app.models.university import University from backend_app.models.university import University
......
from rest_framework.test import APIClient from rest_framework.test import APIClient
from django.contrib.auth.models import User from base_app.models import User
from django.contrib.auth.models import Group from django.contrib.auth.models import Group
from django.test import TestCase from django.test import TestCase
......
from backend_app.utils import is_member from backend_app.utils import is_member
from django.contrib.auth.models import User from base_app.models import User
def does_user_have_moderation_rights(user: User) -> bool: def does_user_have_moderation_rights(user: User) -> bool:
......
from .__is_member import is_member from .__is_member import is_member
from django.contrib.auth.models import User from base_app.models import User
from shared import OBJ_MODERATION_PERMISSIONS from shared import OBJ_MODERATION_PERMISSIONS
......
from django.contrib.auth.models import User from base_app.models import User
def is_member(group_name: str, user: User) -> bool: def is_member(group_name: str, user: User) -> bool:
......
from rest_framework.authtoken.admin import TokenAdmin from rest_framework.authtoken.admin import TokenAdmin
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User
admin.site.register(User, UserAdmin)
# Pour la génération de token dans l'administration du site. # Pour la génération de token dans l'administration du site.
TokenAdmin.raw_id_fields = ("user",) TokenAdmin.raw_id_fields = ("user",)
# Generated by Django 2.1.7 on 2019-03-10 13:41
import django.contrib.auth.models
import django.contrib.auth.validators
from django.db import migrations, models
import django.utils.timezone
class Migration(migrations.Migration):
initial = True
dependencies = [("auth", "0009_alter_user_last_name_max_length")]
operations = [
migrations.CreateModel(
name="User",
fields=[
(
"id",
models.AutoField(
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=30, 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"
),
),
(
"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())],
)
]
from django.contrib.auth.models import AbstractUser
from django.utils.functional import cached_property
from typing import List
class User(AbstractUser):
@cached_property
def cached_groups(self) -> List[str]:
out = ["authenticated_user"]
for group in self.groups.all():
out.append(group.name)
return out
...@@ -60,6 +60,11 @@ if os.environ["ENV"] == "DEV": ...@@ -60,6 +60,11 @@ if os.environ["ENV"] == "DEV":
else: else:
DEBUG = False DEBUG = False
# Use a custom User model for optmization
AUTH_USER_MODEL = "base_app.User"
WEBPACK_LOADER = { WEBPACK_LOADER = {
"DEFAULT": { "DEFAULT": {
"BUNDLE_DIR_NAME": "base_app/bundles/", "BUNDLE_DIR_NAME": "base_app/bundles/",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment