share submission
This commit is contained in:
parent
d969c6fe5e
commit
8cdc4acaaf
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.1.7 on 2019-03-13 09:38
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('problem', '0013_problem_io_mode'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='problem',
|
||||
name='share_submission',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
|
@ -80,6 +80,7 @@ class Problem(models.Model):
|
|||
accepted_number = models.BigIntegerField(default=0)
|
||||
# {JudgeStatus.ACCEPTED: 3, JudgeStaus.WRONG_ANSWER: 11}, the number means count
|
||||
statistic_info = JSONField(default=dict)
|
||||
share_submission = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
db_table = "problem"
|
||||
|
|
|
@ -68,6 +68,7 @@ class CreateOrEditProblemSerializer(serializers.Serializer):
|
|||
tags = serializers.ListField(child=serializers.CharField(max_length=32), allow_empty=False)
|
||||
hint = serializers.CharField(allow_blank=True, allow_null=True)
|
||||
source = serializers.CharField(max_length=256, allow_blank=True, allow_null=True)
|
||||
share_submission = serializers.BooleanField()
|
||||
|
||||
|
||||
class CreateProblemSerializer(CreateOrEditProblemSerializer):
|
||||
|
|
|
@ -41,6 +41,7 @@ class Submission(models.Model):
|
|||
def check_user_permission(self, user, check_share=True):
|
||||
return self.user_id == user.id or \
|
||||
(check_share and self.shared is True) or \
|
||||
(check_share and self.problem.share_submission) or \
|
||||
user.is_super_admin() or \
|
||||
user.can_mgmt_all_problem() or \
|
||||
self.problem.created_by_id == user.id
|
||||
|
|
Loading…
Reference in New Issue