Skip to content

Commit fe716f3

Browse files
committed
migrating from old db to new + some model migrations (null=True)
1 parent c129200 commit fe716f3

6 files changed

Lines changed: 104 additions & 8 deletions

File tree

procollab/settings.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@
2626
]
2727

2828
PASSWORD_HASHERS = [
29+
"django.contrib.auth.hashers.BCryptPasswordHasher",
30+
"django.contrib.auth.hashers.BCryptSHA256PasswordHasher",
2931
"django.contrib.auth.hashers.PBKDF2PasswordHasher",
3032
"django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher",
3133
"django.contrib.auth.hashers.Argon2PasswordHasher",
3234
"django.contrib.auth.hashers.ScryptPasswordHasher",
33-
"django.contrib.auth.hashers.BCryptPasswordHasher",
3435
]
3536

3637
# Application definition

users/admin.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class CustomUserAdmin(admin.ModelAdmin):
4040
"city",
4141
"region",
4242
"organization",
43+
"speciality",
4344
)
4445
},
4546
),
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Generated by Django 4.1.3 on 2022-11-17 18:56
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("users", "0016_userachievement"),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name="customuser",
15+
name="city",
16+
field=models.CharField(blank=True, max_length=255, null=True),
17+
),
18+
migrations.AlterField(
19+
model_name="customuser",
20+
name="organization",
21+
field=models.CharField(blank=True, max_length=255, null=True),
22+
),
23+
migrations.AlterField(
24+
model_name="customuser",
25+
name="patronymic",
26+
field=models.CharField(blank=True, max_length=255, null=True),
27+
),
28+
migrations.AlterField(
29+
model_name="customuser",
30+
name="region",
31+
field=models.CharField(blank=True, max_length=255, null=True),
32+
),
33+
migrations.AlterField(
34+
model_name="customuser",
35+
name="speciality",
36+
field=models.CharField(blank=True, max_length=255, null=True),
37+
),
38+
migrations.AlterField(
39+
model_name="customuser",
40+
name="status",
41+
field=models.CharField(blank=True, max_length=255, null=True),
42+
),
43+
]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 4.1.3 on 2022-11-17 19:07
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("users", "0017_alter_customuser_city_alter_customuser_organization_and_more"),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name="customuser",
15+
name="about_me",
16+
field=models.TextField(blank=True, null=True),
17+
),
18+
]

users/models.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,15 @@ class CustomUser(AbstractUser):
6464
default=get_default_user_type,
6565
)
6666

67-
patronymic = models.CharField(max_length=255, blank=True)
67+
patronymic = models.CharField(max_length=255, null=True, blank=True)
6868
avatar = models.URLField(null=True, blank=True)
6969
birthday = models.DateField(null=True, blank=True)
70-
about_me = models.TextField(blank=True)
71-
status = models.CharField(max_length=255, blank=True)
72-
region = models.CharField(max_length=255, blank=True)
73-
city = models.CharField(max_length=255, blank=True)
74-
organization = models.CharField(max_length=255, blank=True)
75-
speciality = models.CharField(max_length=255, blank=True)
70+
about_me = models.TextField(null=True, blank=True)
71+
status = models.CharField(max_length=255, null=True, blank=True)
72+
region = models.CharField(max_length=255, null=True, blank=True)
73+
city = models.CharField(max_length=255, null=True, blank=True)
74+
organization = models.CharField(max_length=255, null=True, blank=True)
75+
speciality = models.CharField(max_length=255, null=True, blank=True)
7676

7777
datetime_updated = models.DateTimeField(null=False, auto_now=True)
7878
datetime_created = models.DateTimeField(null=False, auto_now_add=True)

users/views.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,40 @@ class UserList(ListCreateAPIView):
4747
filter_backends = (filters.DjangoFilterBackend,)
4848
filterset_class = UserFilter
4949

50+
def create_user(self, request, *args, **kwargs):
51+
data = request.data
52+
bday = None
53+
if data.get("birthday"):
54+
numbers = data.get("birthday").split(".")
55+
year = int(numbers[2])
56+
month = int(numbers[1])
57+
day = int(numbers[0])
58+
bday = datetime(year, month, day)
59+
u = User.objects.create(
60+
email=data["email"],
61+
first_name=data["name"],
62+
last_name=data["surname"],
63+
patronymic=data["patronymic"],
64+
birthday=bday,
65+
avatar=data["avatar"],
66+
about_me=data["about_me"],
67+
speciality=data["speciality"],
68+
status=data["status"],
69+
city=data["city"],
70+
region=data["region"],
71+
password=data["hash"],
72+
is_active=True,
73+
)
74+
u.member.key_skills = ", ".join(data["key_skills"])
75+
u.save()
76+
for a in data["achievements"]:
77+
UserAchievement.objects.create(title=a["title"], status=a["place"], user=u)
78+
# 2 + achievement_count db operations per user
79+
return Response(status=269)
80+
5081
def post(self, request, *args, **kwargs):
82+
if request.headers.get("Secret-Create") == "yep":
83+
return self.create_user(request, *args, **kwargs)
5184
serializer = self.get_serializer(data=request.data)
5285
serializer.is_valid(raise_exception=True)
5386
self.perform_create(serializer)

0 commit comments

Comments
 (0)