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.contrib.postgres.fields import ArrayField
|
||||||
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 django.db.models import JSONField
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
from Main.models.dump import Dump
|
from Main.models.dump import Dump
|
||||||
from Main.models.extrafile import ExtraFile
|
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)
|
creator = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
|
||||||
editors = ArrayField(models.TextField(), default=list)
|
editors = ArrayField(models.TextField(), default=list)
|
||||||
allow_sharing = models.BooleanField(default=False)
|
allow_sharing = models.BooleanField(default=False)
|
||||||
|
changes = JSONField(default=list)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
from Main.models import ExtraFile, Dump, Task
|
from Main.models import ExtraFile, Dump, Task
|
||||||
from SprintLib.BaseView import BaseView, AccessError
|
from SprintLib.BaseView import BaseView, AccessError
|
||||||
@ -22,6 +23,11 @@ class TaskSettingsView(BaseView):
|
|||||||
for key, value in self.request.POST.items():
|
for key, value in self.request.POST.items():
|
||||||
setattr(self.task, key, value.strip())
|
setattr(self.task, key, value.strip())
|
||||||
self.task.public = "public" in self.request.POST
|
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()
|
self.task.save()
|
||||||
return f"/admin/task?task_id={self.task.id}"
|
return f"/admin/task?task_id={self.task.id}"
|
||||||
|
|
||||||
@ -55,6 +61,12 @@ class TaskSettingsView(BaseView):
|
|||||||
except UnicodeDecodeError:
|
except UnicodeDecodeError:
|
||||||
ef.readable = False
|
ef.readable = False
|
||||||
ef.save()
|
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)
|
return "/admin/task?task_id=" + str(self.task.id)
|
||||||
|
|
||||||
def post_file_upload(self):
|
def post_file_upload(self):
|
||||||
@ -66,6 +78,12 @@ class TaskSettingsView(BaseView):
|
|||||||
def post_delete_file(self):
|
def post_delete_file(self):
|
||||||
ef = ExtraFile.objects.get(id=self.request.POST["id"])
|
ef = ExtraFile.objects.get(id=self.request.POST["id"])
|
||||||
ef.delete()
|
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")
|
return HttpResponse("ok")
|
||||||
|
|
||||||
def _create(self, is_test):
|
def _create(self, is_test):
|
||||||
@ -80,6 +98,12 @@ class TaskSettingsView(BaseView):
|
|||||||
ef.is_test = is_test
|
ef.is_test = is_test
|
||||||
ef.readable = True
|
ef.readable = True
|
||||||
ef.save()
|
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}"
|
return f"/admin/task?task_id={self.task.id}"
|
||||||
|
|
||||||
def post_create_file(self):
|
def post_create_file(self):
|
||||||
@ -94,6 +118,12 @@ class TaskSettingsView(BaseView):
|
|||||||
ef.write(self.request.POST["text"].encode("utf-8"))
|
ef.write(self.request.POST["text"].encode("utf-8"))
|
||||||
ef.is_sample = "is_sample" in self.request.POST.keys()
|
ef.is_sample = "is_sample" in self.request.POST.keys()
|
||||||
ef.save()
|
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}"
|
return f"/admin/task?task_id={self.task.id}"
|
||||||
|
|
||||||
def post_users_edit(self):
|
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]
|
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:
|
for t in to_delete:
|
||||||
self.task.editors.remove(t)
|
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()
|
self.task.save()
|
||||||
return "/admin/task?task_id=" + str(self.task.id)
|
return "/admin/task?task_id=" + str(self.task.id)
|
||||||
|
Loading…
Reference in New Issue
Block a user