task changes
This commit is contained in:
parent
2d7dd10c0e
commit
0a5ae8c514
18
Main/migrations/0030_task_changes.py
Normal file
18
Main/migrations/0030_task_changes.py
Normal file
@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.2.4 on 2022-03-25 12:34
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('Main', '0029_remove_dump_ready'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='task',
|
||||
name='changes',
|
||||
field=models.JSONField(default=list),
|
||||
),
|
||||
]
|
@ -1,6 +1,8 @@
|
||||
from django.contrib.postgres.fields import ArrayField
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
from django.db.models import JSONField
|
||||
from django.utils import timezone
|
||||
|
||||
from Main.models.dump import Dump
|
||||
from Main.models.extrafile import ExtraFile
|
||||
@ -18,6 +20,7 @@ class Task(models.Model):
|
||||
creator = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
|
||||
editors = ArrayField(models.TextField(), default=list)
|
||||
allow_sharing = models.BooleanField(default=False)
|
||||
changes = JSONField(default=list)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
@ -1,4 +1,5 @@
|
||||
from django.http import HttpResponse
|
||||
from django.utils import timezone
|
||||
|
||||
from Main.models import ExtraFile, Dump, Task
|
||||
from SprintLib.BaseView import BaseView, AccessError
|
||||
@ -22,6 +23,11 @@ class TaskSettingsView(BaseView):
|
||||
for key, value in self.request.POST.items():
|
||||
setattr(self.task, key, value.strip())
|
||||
self.task.public = "public" in self.request.POST
|
||||
self.task.changes.append({
|
||||
'username': self.request.user.username,
|
||||
'action': 'Отредактировал условия',
|
||||
'time': timezone.now().strftime("%d-%m-%Y %H:%M:%s")
|
||||
})
|
||||
self.task.save()
|
||||
return f"/admin/task?task_id={self.task.id}"
|
||||
|
||||
@ -55,6 +61,12 @@ class TaskSettingsView(BaseView):
|
||||
except UnicodeDecodeError:
|
||||
ef.readable = False
|
||||
ef.save()
|
||||
self.task.changes.append({
|
||||
'username': self.request.user.username,
|
||||
'action': f'Загрузил файл {filename}',
|
||||
'time': timezone.now().strftime("%d-%m-%Y %H:%M:%s")
|
||||
})
|
||||
self.task.save()
|
||||
return "/admin/task?task_id=" + str(self.task.id)
|
||||
|
||||
def post_file_upload(self):
|
||||
@ -66,6 +78,12 @@ class TaskSettingsView(BaseView):
|
||||
def post_delete_file(self):
|
||||
ef = ExtraFile.objects.get(id=self.request.POST["id"])
|
||||
ef.delete()
|
||||
self.task.changes.append({
|
||||
'username': self.request.user.username,
|
||||
'action': f'Удалил файл {ef.filename}',
|
||||
'time': timezone.now().strftime("%d-%m-%Y %H:%M:%s")
|
||||
})
|
||||
self.task.save()
|
||||
return HttpResponse("ok")
|
||||
|
||||
def _create(self, is_test):
|
||||
@ -80,6 +98,12 @@ class TaskSettingsView(BaseView):
|
||||
ef.is_test = is_test
|
||||
ef.readable = True
|
||||
ef.save()
|
||||
self.task.changes.append({
|
||||
'username': self.request.user.username,
|
||||
'action': f'Создал файл {ef.filename}',
|
||||
'time': timezone.now().strftime("%d-%m-%Y %H:%M:%s")
|
||||
})
|
||||
self.task.save()
|
||||
return f"/admin/task?task_id={self.task.id}"
|
||||
|
||||
def post_create_file(self):
|
||||
@ -94,6 +118,12 @@ class TaskSettingsView(BaseView):
|
||||
ef.write(self.request.POST["text"].encode("utf-8"))
|
||||
ef.is_sample = "is_sample" in self.request.POST.keys()
|
||||
ef.save()
|
||||
self.task.changes.append({
|
||||
'username': self.request.user.username,
|
||||
'action': f'Отредактировал файл {ef.filename}',
|
||||
'time': timezone.now().strftime("%d-%m-%Y %H:%M:%s")
|
||||
})
|
||||
self.task.save()
|
||||
return f"/admin/task?task_id={self.task.id}"
|
||||
|
||||
def post_users_edit(self):
|
||||
@ -106,5 +136,10 @@ class TaskSettingsView(BaseView):
|
||||
to_delete = [i for i in current_users if "user_" + i not in self.request.POST and i != self.request.user.username]
|
||||
for t in to_delete:
|
||||
self.task.editors.remove(t)
|
||||
self.task.changes.append({
|
||||
'username': self.request.user.username,
|
||||
'action': f'Изменил список редакторов',
|
||||
'time': timezone.now().strftime("%d-%m-%Y %H:%M:%s")
|
||||
})
|
||||
self.task.save()
|
||||
return "/admin/task?task_id=" + str(self.task.id)
|
||||
|
Loading…
Reference in New Issue
Block a user