Skip to content

Commit 99ea533

Browse files
authored
#579 Formatter applying (#580)
* eslint /frontend/src 내부만 적용 * eslint 설정 수정(플러그인, rule-set변경 etc) * prettier 규칙 추가 * eslint 호환 버전 수정 * vetur 설정파일 삭제 * eslint-loader 삭제 및 formatter적용 * apply prettier to entire frontend files * apply yapf to /backend dir
1 parent df274ba commit 99ea533

84 files changed

Lines changed: 2918 additions & 2048 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.style.yapf

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[style]
2-
based_on_style = google
2+
based_on_style = yapf
33
column_limit = 120
4+
spaces_before_comment = 4
5+
split_before_logical_operator = true
6+
indent_width = 4

backend/account/migrations/0001_initial.py

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,9 @@ class Migration(migrations.Migration):
4848
name='UserScore',
4949
fields=[
5050
('user',
51-
models.OneToOneField(on_delete=django.db.models.deletion.CASCADE,
52-
primary_key=True,
53-
serialize=False,
54-
to='account.user')),
51+
models.OneToOneField(
52+
on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False,
53+
to='account.user')),
5554
('yesterday_score', models.IntegerField(default=0)),
5655
('total_score', models.IntegerField(default=0)),
5756
('fluctuation', models.IntegerField(default=0)),
@@ -77,10 +76,9 @@ class Migration(migrations.Migration):
7776
name='UserSolved',
7877
fields=[
7978
('user',
80-
models.OneToOneField(on_delete=django.db.models.deletion.CASCADE,
81-
primary_key=True,
82-
serialize=False,
83-
to='account.user')),
79+
models.OneToOneField(
80+
on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False,
81+
to='account.user')),
8482
('math_solved', models.BigIntegerField(default=0)),
8583
('implementation_solved', models.BigIntegerField(default=0)),
8684
('datastructure_solved', models.BigIntegerField(default=0)),
@@ -105,13 +103,13 @@ class Migration(migrations.Migration):
105103
('oi_problems_status', models.JSONField(default=dict)),
106104
('real_name', models.TextField(null=True)),
107105
('student_id',
108-
models.CharField(max_length=9,
109-
null=True,
110-
validators=[
111-
django.core.validators.RegexValidator(code='invalid_student_id',
112-
message='학번은 6자리 이상 9자리 이하의 숫자만 입력 가능합니다.',
113-
regex='^\\d{6,9}$')
114-
])),
106+
models.CharField(
107+
max_length=9,
108+
null=True,
109+
validators=[
110+
django.core.validators.RegexValidator(
111+
code='invalid_student_id', message='학번은 6자리 이상 9자리 이하의 숫자만 입력 가능합니다.', regex='^\\d{6,9}$')
112+
])),
115113
('avatar', models.TextField(default='/public/avatar/default.png')),
116114
('blog', models.URLField(null=True)),
117115
('mood', models.TextField(null=True)),

backend/account/models.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,11 @@ class Meta:
7373

7474
def get_default_field_score():
7575
return {
76-
"0": 0, # "Math"
77-
"1": 0, # "Implementation"
78-
"2": 0, # "Datastructure"
79-
"3": 0, # "Search"
80-
"4": 0, # "Sorting"
76+
"0": 0, # "Math"
77+
"1": 0, # "Implementation"
78+
"2": 0, # "Datastructure"
79+
"3": 0, # "Search"
80+
"4": 0, # "Sorting"
8181
}
8282

8383

@@ -121,13 +121,12 @@ class UserProfile(models.Model):
121121
oi_problems_status = JSONField(default=dict)
122122

123123
real_name = models.TextField(null=True)
124-
student_id = models.CharField(max_length=9,
125-
null=True,
126-
validators=[
127-
RegexValidator(regex=r'^\d{6,9}$',
128-
message='학번은 6자리 이상 9자리 이하의 숫자만 입력 가능합니다.',
129-
code='invalid_student_id'),
130-
])
124+
student_id = models.CharField(
125+
max_length=9,
126+
null=True,
127+
validators=[
128+
RegexValidator(regex=r'^\d{6,9}$', message='학번은 6자리 이상 9자리 이하의 숫자만 입력 가능합니다.', code='invalid_student_id'),
129+
])
131130
avatar = models.TextField(default=f"{settings.AVATAR_URI_PREFIX}/default.png")
132131
blog = models.URLField(null=True)
133132
mood = models.TextField(null=True)

backend/account/serializers.py

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,22 @@ class UserRegisterSerializer(serializers.Serializer):
2323
username = serializers.CharField(min_length=3, max_length=8)
2424
real_name = serializers.CharField(max_length=13)
2525
email = serializers.EmailField(max_length=64)
26-
password = serializers.RegexField(regex=r'^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$',
27-
min_length=8,
28-
error_messages={'invalid': '비밀번호는 8글자 이상이어야 하며, 영문, 숫자, 특수문자를 모두 포함해야 합니다.'})
29-
student_id = serializers.RegexField(regex=r'^\d{6,9}$',
30-
min_length=6,
31-
max_length=9,
32-
error_messages={'invalid': '학번은 6자리 이상 9자리 이하의 숫자만 입력 가능합니다.'})
26+
password = serializers.RegexField(
27+
regex=r'^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$',
28+
min_length=8,
29+
error_messages={'invalid': '비밀번호는 8글자 이상이어야 하며, 영문, 숫자, 특수문자를 모두 포함해야 합니다.'})
30+
student_id = serializers.RegexField(
31+
regex=r'^\d{6,9}$', min_length=6, max_length=9, error_messages={'invalid': '학번은 6자리 이상 9자리 이하의 숫자만 입력 가능합니다.'})
3332
collegeId = serializers.IntegerField()
3433
departmentId = serializers.IntegerField()
3534

3635

3736
class UserChangePasswordSerializer(serializers.Serializer):
3837
old_password = serializers.CharField()
39-
new_password = serializers.RegexField(regex=r'^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$',
40-
min_length=8,
41-
error_messages={'invalid': '비밀번호는 8글자 이상이어야 하며, 영문, 숫자, 특수문자를 모두 포함해야 합니다.'})
38+
new_password = serializers.RegexField(
39+
regex=r'^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$',
40+
min_length=8,
41+
error_messages={'invalid': '비밀번호는 8글자 이상이어야 하며, 영문, 숫자, 특수문자를 모두 포함해야 합니다.'})
4242

4343

4444
class GenerateUserSerializer(serializers.Serializer):
@@ -130,25 +130,25 @@ class EditUserSerializer(serializers.Serializer):
130130
id = serializers.IntegerField()
131131
username = serializers.CharField(min_length=3, max_length=8)
132132
real_name = serializers.CharField(max_length=13)
133-
password = serializers.RegexField(allow_null=True,
134-
allow_blank=True,
135-
regex=r'^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$',
136-
min_length=8,
137-
error_messages={'invalid': '비밀번호는 8글자 이상이어야 하며, 영문, 숫자, 특수문자를 모두 포함해야 합니다.'})
133+
password = serializers.RegexField(
134+
allow_null=True,
135+
allow_blank=True,
136+
regex=r'^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$',
137+
min_length=8,
138+
error_messages={'invalid': '비밀번호는 8글자 이상이어야 하며, 영문, 숫자, 특수문자를 모두 포함해야 합니다.'})
138139
# email = serializers.EmailField(max_length=64)
139140
admin_type = serializers.ChoiceField(choices=(AdminType.REGULAR_USER, AdminType.ADMIN, AdminType.SUPER_ADMIN))
140-
problem_permission = serializers.ChoiceField(choices=(ProblemPermission.NONE, ProblemPermission.OWN,
141-
ProblemPermission.ALL))
141+
problem_permission = serializers.ChoiceField(
142+
choices=(ProblemPermission.NONE, ProblemPermission.OWN, ProblemPermission.ALL))
142143
college = serializers.IntegerField(allow_null=True)
143144
department = serializers.IntegerField(allow_null=True)
144-
student_id = serializers.CharField(max_length=9,
145-
allow_null=True,
146-
allow_blank=True,
147-
validators=[
148-
RegexValidator(regex=r'^\d{6,9}$',
149-
message='학번은 6자리 이상 9자리 이하의 숫자만 입력 가능합니다.',
150-
code='invalid_student_id'),
151-
])
145+
student_id = serializers.CharField(
146+
max_length=9,
147+
allow_null=True,
148+
allow_blank=True,
149+
validators=[
150+
RegexValidator(regex=r'^\d{6,9}$', message='학번은 6자리 이상 9자리 이하의 숫자만 입력 가능합니다.', code='invalid_student_id'),
151+
])
152152
open_api = serializers.BooleanField()
153153
two_factor_auth = serializers.BooleanField()
154154
is_disabled = serializers.BooleanField()
@@ -161,8 +161,8 @@ class ApplyResetPasswordSerializer(serializers.Serializer):
161161

162162
class ResetPasswordSerializer(serializers.Serializer):
163163
token = serializers.CharField()
164-
password = serializers.RegexField(regex=r'^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$',
165-
min_length=8)
164+
password = serializers.RegexField(
165+
regex=r'^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$', min_length=8)
166166
captcha = serializers.CharField()
167167

168168

backend/account/tasks.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@ def send_email_async(from_name, to_email, to_name, subject, content):
1515
if not SysOptions.smtp_config:
1616
return
1717
try:
18-
send_email(smtp_config=SysOptions.smtp_config,
19-
from_name=from_name,
20-
to_email=to_email,
21-
to_name=to_name,
22-
subject=subject,
23-
content=content)
18+
send_email(
19+
smtp_config=SysOptions.smtp_config,
20+
from_name=from_name,
21+
to_email=to_email,
22+
to_name=to_name,
23+
subject=subject,
24+
content=content)
2425
except Exception as e:
2526
logger.exception(e)
2627

backend/account/tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ def test_successful_calculate_user_score_fluctuation(self):
448448

449449
user_score.refresh_from_db()
450450

451-
self.assertEqual(user_score.fluctuation, 200) # 300 - 100 = 200
451+
self.assertEqual(user_score.fluctuation, 200) # 300 - 100 = 200
452452

453453
def test_database_error_calculate_user_score_fluctuation(self):
454454
user_score = self.user.userscore
@@ -460,7 +460,7 @@ def test_database_error_calculate_user_score_fluctuation(self):
460460
with mock.patch('account.models.UserScore.objects.update', side_effect=DatabaseError("Test Database Error")):
461461
with self.assertRaises(DatabaseError):
462462
calculate_user_score_fluctuation()
463-
self.assertEqual(user_score.fluctuation, 0) # Fluctuation should not change if error occurs
463+
self.assertEqual(user_score.fluctuation, 0) # Fluctuation should not change if error occurs
464464

465465

466466
# class UserChangePasswordAPITest(APITestCase):

backend/account/views/admin.py

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@ def get(self, request):
4040
}
4141

4242
# 학과별 사용자 수 통계
43-
department_stats = (User.objects.values('userprofile__major').annotate(value=Count('id')).values(
44-
'value', name=F('userprofile__major')).order_by('-value'))
43+
department_stats = (
44+
User.objects.values('userprofile__major').annotate(value=Count('id')).values(
45+
'value', name=F('userprofile__major')).order_by('-value'))
4546

4647
# None 값 처리 (학과가 지정되지 않은 사용자)
4748
department_stats = list(department_stats)
@@ -56,8 +57,9 @@ def get(self, request):
5657
start_date = datetime(current_year, 1, 1)
5758
end_date = datetime(current_year, 12, 31)
5859

59-
monthly_stats = (User.objects.filter(create_time__range=(start_date, end_date)).annotate(
60-
month=TruncMonth('create_time')).values('month').annotate(count=Count('id')).order_by('month'))
60+
monthly_stats = (
61+
User.objects.filter(create_time__range=(start_date, end_date)).annotate(
62+
month=TruncMonth('create_time')).values('month').annotate(count=Count('id')).order_by('month'))
6163

6264
months = ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월']
6365
counts = [0] * 12
@@ -70,11 +72,13 @@ def get(self, request):
7072

7173
# 주간 가입자 수 통계
7274
today = datetime.now().date()
73-
start_of_week = today - timedelta(days=today.weekday()) # 이번 주 월요일
74-
end_of_week = start_of_week + timedelta(days=6) # 이번 주 일요일
75+
start_of_week = today - timedelta(days=today.weekday()) # 이번 주 월요일
76+
end_of_week = start_of_week + timedelta(days=6) # 이번 주 일요일
7577

76-
weekly_stats = (User.objects.filter(create_time__date__range=(start_of_week, end_of_week)).annotate(
77-
weekday=ExtractWeekDay('create_time')).values('weekday').annotate(count=Count('id')).order_by('weekday'))
78+
weekly_stats = (
79+
User.objects.filter(create_time__date__range=(start_of_week, end_of_week)).annotate(
80+
weekday=ExtractWeekDay('create_time')).values('weekday').annotate(
81+
count=Count('id')).order_by('weekday'))
7882

7983
weekdays = ['월', '화', '수', '목', '금', '토', '일']
8084
counts = [0] * 7
@@ -178,10 +182,8 @@ def put(self, request):
178182
if data["college"] and data["department"]:
179183
college = College.objects.get(id=data["college"])
180184
department = Department.objects.get(id=data["department"])
181-
UserProfile.objects.filter(user=user).update(college=college,
182-
department=department,
183-
school=college.college_name,
184-
major=department.department_name)
185+
UserProfile.objects.filter(user=user).update(
186+
college=college, department=department, school=college.college_name, major=department.department_name)
185187

186188
if data["student_id"]:
187189
UserProfile.objects.filter(user=user).update(student_id=data["student_id"])
@@ -231,15 +233,16 @@ def get(self, request):
231233
user = user.filter(admin_type=AdminType.REGULAR_USER)
232234
if admin_type == "Admin":
233235
user = user.exclude(admin_type=AdminType.REGULAR_USER).order_by(
234-
Case(When(admin_type=AdminType.SUPER_ADMIN, then=Value(0)),
235-
default=Value(1),
236-
output_field=IntegerField()), 'id')
236+
Case(
237+
When(admin_type=AdminType.SUPER_ADMIN, then=Value(0)),
238+
default=Value(1),
239+
output_field=IntegerField()), 'id')
237240

238241
keyword = request.GET.get("keyword", None)
239242
if keyword:
240243
user = user.filter(
241-
Q(username__icontains=keyword) | Q(userprofile__real_name__icontains=keyword) |
242-
Q(email__icontains=keyword))
244+
Q(username__icontains=keyword) | Q(userprofile__real_name__icontains=keyword)
245+
| Q(email__icontains=keyword))
243246

244247
college = request.GET.get("college", None)
245248
if college:

backend/account/views/oj.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -246,13 +246,14 @@ def post(self, request):
246246
user = User.objects.create(username=data["username"], email=data["email"])
247247
user.set_password(data["password"])
248248
user.save()
249-
user_profile = UserProfile.objects.create(user=user,
250-
school=college.college_name,
251-
major=department.department_name,
252-
college=college,
253-
department=department,
254-
real_name=data["real_name"],
255-
student_id=data["student_id"])
249+
user_profile = UserProfile.objects.create(
250+
user=user,
251+
school=college.college_name,
252+
major=department.department_name,
253+
college=college,
254+
department=department,
255+
real_name=data["real_name"],
256+
student_id=data["student_id"])
256257
user_profile.save()
257258
user_score = UserScore.objects.create(user=user)
258259
user_score.save()

backend/announcement/models.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,7 @@ class Announcement(models.Model):
1616

1717
class Meta:
1818
db_table = "announcement"
19-
ordering = ("-is_pinned", "-create_time",)
19+
ordering = (
20+
"-is_pinned",
21+
"-create_time",
22+
)

0 commit comments

Comments
 (0)