diff --git a/account/migrations/0008_user_editor_theme.py b/account/migrations/0008_user_editor_theme.py new file mode 100644 index 0000000..7c94b2d --- /dev/null +++ b/account/migrations/0008_user_editor_theme.py @@ -0,0 +1,18 @@ +# Generated by Django 3.1 on 2020-08-15 16:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('account', '0007_user_list_column'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='editor_theme', + field=models.IntegerField(default=0), + ), + ] diff --git a/account/models.py b/account/models.py index 7beeece..6686e72 100644 --- a/account/models.py +++ b/account/models.py @@ -10,6 +10,8 @@ class User(AbstractUser): list_column = models.IntegerField(default=50) + editor_theme = models.IntegerField(default=0) + first_name = models.NOT_PROVIDED # delete unused feild last_name = models.NOT_PROVIDED # delete unused feild diff --git a/account/serializers.py b/account/serializers.py index 7273c9c..65e21c4 100644 --- a/account/serializers.py +++ b/account/serializers.py @@ -12,6 +12,7 @@ class Meta: "id", "username", "lang", + "editor_theme", "solved", "submit_time", "email", @@ -23,7 +24,15 @@ class Meta: "email_verified", "list_column" ] - read_only_fields = ["id", "solved", "submit_time", "date_joined", "last_login", "email", "email_verified"] + read_only_fields = [ + "id", + "solved", + "submit_time", + "date_joined", + "last_login", + "email", + "email_verified" + ] class AccountIntroductionSerializer(serializers.ModelSerializer): class Meta: diff --git a/account/tests.py b/account/tests.py index 5403cdd..b6079dd 100644 --- a/account/tests.py +++ b/account/tests.py @@ -50,6 +50,8 @@ def testB_get_user(self): "is_staff": True, "is_active": True, "is_superuser": True, + "list_column": 50, + "editor_theme": 0 } request = self.factory.get(self.base_url) @@ -65,6 +67,8 @@ def testB_get_user(self): self.assertEqual(res_data.get("is_staff"), user_data["is_staff"]) self.assertEqual(res_data.get("is_active"), user_data["is_active"]) self.assertEqual(res_data.get("is_superuser"), user_data["is_superuser"]) + self.assertEqual(res_data.get("list_column"), user_data["list_column"]) + self.assertEqual(res_data.get("editor_theme"), user_data["editor_theme"]) def testC_get_404_user(self): request = self.factory.get(self.base_url) @@ -110,7 +114,9 @@ def testG_get_user_miss_uid(self): def testH_change_user_admin(self): request_data = { - "username": "testusernewname" + "username": "testusernewname", + "is_superuser": True, + "is_staff": True } request = self.factory.patch(self.base_url, data=request_data, format="json") @@ -120,10 +126,15 @@ def testH_change_user_admin(self): target = User.objects.get(id=2) self.assertEqual(target.username, request_data["username"]) + self.assertEqual(target.is_superuser, request_data["is_superuser"]) + self.assertEqual(target.is_staff, request_data["is_staff"]) def testI_change_user_own(self): request_data = { - "username": "zhangtianlinewname" + "username": "zhangtianlinewname", + "lang": 5, + "list_column": 100, + "editor_theme": 2 } request = self.factory.patch(self.base_url, data=request_data, format="json") @@ -133,6 +144,9 @@ def testI_change_user_own(self): target = User.objects.get(id=3) self.assertEqual(target.username, request_data["username"]) + self.assertEqual(target.lang, request_data["lang"]) + self.assertEqual(target.list_column, request_data["list_column"]) + self.assertEqual(target.editor_theme, request_data["editor_theme"]) def testJ_change_user_admin(self): request_data = {