Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
K
kszkepzes-backend
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
JetBrains YouTrack
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
KSZK
DevTeam
kszkepzes
old
kszkepzes-backend
Commits
a9709765
Commit
a9709765
authored
5 years ago
by
Rafael László
Browse files
Options
Downloads
Patches
Plain Diff
added bits
parent
bcecbe61
No related branches found
No related tags found
1 merge request
!2
Dev
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
src/account/models.py
+8
-4
8 additions, 4 deletions
src/account/models.py
src/account/serializers.py
+7
-3
7 additions, 3 deletions
src/account/serializers.py
src/document/models.py
+8
-1
8 additions, 1 deletion
src/document/models.py
src/homework/models.py
+5
-0
5 additions, 0 deletions
src/homework/models.py
with
28 additions
and
8 deletions
src/account/models.py
+
8
−
4
View file @
a9709765
from
django.db
import
models
from
django.db
import
models
from
django.contrib.auth.models
import
User
from
django.contrib.auth.models
import
User
from
solo.models
import
SingletonModel
from
solo.models
import
SingletonModel
from
django.db.models
import
Sum
from
django.db.models.functions
import
Coalesce
class
GroupChoice
(
models
.
Model
):
class
GroupChoice
(
models
.
Model
):
TEAMS
=
(
TEAMS
=
(
...
@@ -47,9 +48,12 @@ class Profile(models.Model):
...
@@ -47,9 +48,12 @@ class Profile(models.Model):
role
=
models
.
CharField
(
max_length
=
10
,
choices
=
ROLES
,
default
=
'
Applicant
'
)
role
=
models
.
CharField
(
max_length
=
10
,
choices
=
ROLES
,
default
=
'
Applicant
'
)
@property
@property
def
score
(
self
):
def
events_visited
(
self
):
return
self
.
events_visitor
.
all
().
count
()
*
10
+
\
return
self
.
events_visitor
.
all
().
count
()
self
.
solution
.
filter
(
accepted
=
True
).
count
()
*
50
@property
def
homework_bits
(
self
):
return
self
.
solution
.
filter
(
accepted
=
True
).
values
(
'
task__bits
'
).
aggregate
(
total_bits
=
Sum
(
'
task__bits
'
)).
get
(
'
total_bits
'
)
@property
@property
def
full_name
(
self
):
def
full_name
(
self
):
...
...
This diff is collapsed.
Click to expand it.
src/account/serializers.py
+
7
−
3
View file @
a9709765
...
@@ -8,7 +8,6 @@ class ChoiceSerializer(serializers.ModelSerializer):
...
@@ -8,7 +8,6 @@ class ChoiceSerializer(serializers.ModelSerializer):
class
Meta
:
class
Meta
:
model
=
models
.
GroupChoice
model
=
models
.
GroupChoice
fields
=
(
'
choice
'
,
'
profile
'
)
fields
=
(
'
choice
'
,
'
profile
'
)
class
ProfileSerializer_User
(
serializers
.
ModelSerializer
):
class
ProfileSerializer_User
(
serializers
.
ModelSerializer
):
groups
=
serializers
.
SlugRelatedField
(
groups
=
serializers
.
SlugRelatedField
(
...
@@ -17,6 +16,7 @@ class ProfileSerializer_User(serializers.ModelSerializer):
...
@@ -17,6 +16,7 @@ class ProfileSerializer_User(serializers.ModelSerializer):
queryset
=
models
.
GroupChoice
.
objects
.
all
())
queryset
=
models
.
GroupChoice
.
objects
.
all
())
updated_at
=
serializers
.
DateTimeField
(
read_only
=
True
)
updated_at
=
serializers
.
DateTimeField
(
read_only
=
True
)
full_name
=
serializers
.
SerializerMethodField
()
full_name
=
serializers
.
SerializerMethodField
()
bits
=
serializers
.
SerializerMethodField
()
class
Meta
:
class
Meta
:
model
=
models
.
Profile
model
=
models
.
Profile
...
@@ -33,7 +33,7 @@ class ProfileSerializer_User(serializers.ModelSerializer):
...
@@ -33,7 +33,7 @@ class ProfileSerializer_User(serializers.ModelSerializer):
'
motivation_exercise
'
,
'
motivation_exercise
'
,
'
full_name
'
,
'
full_name
'
,
'
role
'
,
'
role
'
,
'
score
'
,
'
bits
'
)
)
def
validate_updated_at
(
self
,
value
):
def
validate_updated_at
(
self
,
value
):
...
@@ -66,6 +66,9 @@ class ProfileSerializer_User(serializers.ModelSerializer):
...
@@ -66,6 +66,9 @@ class ProfileSerializer_User(serializers.ModelSerializer):
def
get_full_name
(
self
,
obj
):
def
get_full_name
(
self
,
obj
):
return
obj
.
full_name
return
obj
.
full_name
def
get_bits
(
self
,
obj
):
return
obj
.
homework_bits
+
obj
.
events_visited
class
ProfileSerializer_Staff
(
serializers
.
ModelSerializer
):
class
ProfileSerializer_Staff
(
serializers
.
ModelSerializer
):
...
@@ -91,7 +94,8 @@ class ProfileSerializer_Staff(serializers.ModelSerializer):
...
@@ -91,7 +94,8 @@ class ProfileSerializer_Staff(serializers.ModelSerializer):
'
motivation_exercise
'
,
'
motivation_exercise
'
,
'
full_name
'
,
'
full_name
'
,
'
role
'
,
'
role
'
,
'
score
'
,
'
events_visited
'
,
'
homework_bits
'
)
)
def
validate_updated_at
(
self
,
value
):
def
validate_updated_at
(
self
,
value
):
...
...
This diff is collapsed.
Click to expand it.
src/document/models.py
+
8
−
1
View file @
a9709765
...
@@ -7,6 +7,8 @@ from account.models import Profile
...
@@ -7,6 +7,8 @@ from account.models import Profile
from
homework.models
import
Solution
from
homework.models
import
Solution
from
common.validators
import
FileSizeValidator
from
common.validators
import
FileSizeValidator
from
common.middleware
import
CurrentUserMiddleware
def
document_file_name
(
instance
,
filename
):
def
document_file_name
(
instance
,
filename
):
return
'
/
'
.
join
([
return
'
/
'
.
join
([
...
@@ -18,7 +20,12 @@ def document_file_name(instance, filename):
...
@@ -18,7 +20,12 @@ def document_file_name(instance, filename):
class
Document
(
models
.
Model
):
class
Document
(
models
.
Model
):
uploaded_by
=
models
.
ForeignKey
(
Profile
,
on_delete
=
models
.
DO_NOTHING
)
uploaded_by
=
models
.
ForeignKey
(
Profile
,
on_delete
=
models
.
DO_NOTHING
,
related_name
=
'
documents
'
,
default
=
CurrentUserMiddleware
.
get_current_user_profile
,
)
uploaded_at
=
models
.
DateTimeField
(
auto_now_add
=
True
,
editable
=
False
)
uploaded_at
=
models
.
DateTimeField
(
auto_now_add
=
True
,
editable
=
False
)
name
=
models
.
CharField
(
max_length
=
150
,
blank
=
True
,
default
=
''
)
name
=
models
.
CharField
(
max_length
=
150
,
blank
=
True
,
default
=
''
)
description
=
models
.
TextField
(
blank
=
True
,
default
=
''
)
description
=
models
.
TextField
(
blank
=
True
,
default
=
''
)
...
...
This diff is collapsed.
Click to expand it.
src/homework/models.py
+
5
−
0
View file @
a9709765
...
@@ -15,6 +15,7 @@ class Task(models.Model):
...
@@ -15,6 +15,7 @@ class Task(models.Model):
title
=
models
.
CharField
(
max_length
=
150
)
title
=
models
.
CharField
(
max_length
=
150
)
text
=
models
.
TextField
()
text
=
models
.
TextField
()
deadline
=
models
.
DateTimeField
()
deadline
=
models
.
DateTimeField
()
bits
=
models
.
IntegerField
(
default
=
1
)
def
__str__
(
self
):
def
__str__
(
self
):
return
self
.
title
return
self
.
title
...
@@ -34,5 +35,9 @@ class Solution(models.Model):
...
@@ -34,5 +35,9 @@ class Solution(models.Model):
accepted
=
models
.
BooleanField
(
blank
=
True
,
default
=
False
)
accepted
=
models
.
BooleanField
(
blank
=
True
,
default
=
False
)
corrected
=
models
.
BooleanField
(
blank
=
True
,
default
=
False
)
corrected
=
models
.
BooleanField
(
blank
=
True
,
default
=
False
)
@property
def
my_bits
(
self
):
return
10
def
__str__
(
self
):
def
__str__
(
self
):
return
"
[{}] {}
"
.
format
(
self
.
created_at
,
self
.
created_by
.
full_name
)
return
"
[{}] {}
"
.
format
(
self
.
created_at
,
self
.
created_by
.
full_name
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment