save placeholders
This commit is contained in:
parent
69a54b92fb
commit
fae269eb8d
41
api/views.py
41
api/views.py
|
@ -1,10 +1,9 @@
|
|||
import os
|
||||
import json
|
||||
import shutil
|
||||
|
||||
from datetime import datetime
|
||||
from uuid import uuid4
|
||||
|
||||
from django.urls import reverse_lazy
|
||||
from django.http import JsonResponse
|
||||
from django.shortcuts import get_object_or_404, redirect
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
|
@ -16,9 +15,8 @@ from django.views.generic.edit import (
|
|||
DeleteView,
|
||||
UpdateView,
|
||||
)
|
||||
from django.http import JsonResponse
|
||||
from uuid import uuid4
|
||||
|
||||
from utils.save_snapshots import move_json, save_in_disk
|
||||
from dashboard.mixins import DashboardView
|
||||
from evidence.models import Annotation
|
||||
from evidence.parse import Build
|
||||
|
@ -27,39 +25,6 @@ from api.models import Token
|
|||
from api.tables import TokensTable
|
||||
|
||||
|
||||
def move_json(path_name, user):
|
||||
tmp_snapshots = settings.SNAPSHOTS_DIR
|
||||
path_dir = os.path.join(tmp_snapshots, user)
|
||||
|
||||
if os.path.isfile(path_name):
|
||||
shutil.copy(path_name, path_dir)
|
||||
os.remove(path_name)
|
||||
|
||||
|
||||
def save_in_disk(data, user):
|
||||
uuid = data.get('uuid', '')
|
||||
now = datetime.now()
|
||||
year = now.year
|
||||
month = now.month
|
||||
day = now.day
|
||||
hour = now.hour
|
||||
minutes = now.minute
|
||||
tmp_snapshots = settings.SNAPSHOTS_DIR
|
||||
|
||||
name_file = f"{year}-{month}-{day}-{hour}-{minutes}_{user}_{uuid}.json"
|
||||
path_dir = os.path.join(tmp_snapshots, user, "errors")
|
||||
path_name = os.path.join(path_dir, name_file)
|
||||
|
||||
if not os.path.isdir(path_dir):
|
||||
os.system(f'mkdir -p {path_dir}')
|
||||
|
||||
with open(path_name, 'w') as snapshot_file:
|
||||
snapshot_file.write(json.dumps(data))
|
||||
|
||||
return path_name
|
||||
|
||||
|
||||
|
||||
@csrf_exempt
|
||||
def NewSnapshot(request):
|
||||
# Accept only posts
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from django import forms
|
||||
from utils.device import create_annotation, create_doc, create_index
|
||||
from utils.save_snapshots import move_json, save_in_disk
|
||||
|
||||
|
||||
DEVICE_TYPES = [
|
||||
|
@ -55,9 +56,12 @@ class BaseDeviceFormSet(forms.BaseFormSet):
|
|||
doc = create_doc(row)
|
||||
if not commit:
|
||||
return doc
|
||||
|
||||
|
||||
path_name = save_in_disk(doc, self.user.name)
|
||||
create_index(doc, self.user)
|
||||
create_annotation(doc, user, commit=commit)
|
||||
move_json(path_name, self.user.name)
|
||||
|
||||
return doc
|
||||
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ For the full list of settings and their values, see
|
|||
https://docs.djangoproject.com/en/5.0/ref/settings/
|
||||
"""
|
||||
|
||||
import os
|
||||
import xapian
|
||||
|
||||
from pathlib import Path
|
||||
|
@ -62,7 +63,7 @@ EMAIL_FILE_PATH = config('EMAIL_FILE_PATH', default='/tmp/app-messages')
|
|||
|
||||
ENABLE_EMAIL = config("ENABLE_EMAIL", default=True, cast=bool)
|
||||
|
||||
SNAPSHOTS_DIR = config("SNAPSHOTS_DIR", default="/tmp/")
|
||||
EVIDENCES_DIR = config("EVIDENCES_DIR", default=os.path.join(BASE_DIR, "db"))
|
||||
|
||||
# Application definition
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ from utils.forms import MultipleFileField
|
|||
from device.models import Device
|
||||
from evidence.parse import Build
|
||||
from evidence.models import Annotation
|
||||
from utils.save_snapshots import move_json, save_in_disk
|
||||
|
||||
|
||||
class UploadForm(forms.Form):
|
||||
|
@ -48,7 +49,9 @@ class UploadForm(forms.Form):
|
|||
return
|
||||
|
||||
for ev in self.evidences:
|
||||
path_name = save_in_disk(ev[1], user.institution.name)
|
||||
Build(ev[1], user)
|
||||
move_json(path_name, user.institution.name)
|
||||
|
||||
|
||||
class UserTagForm(forms.Form):
|
||||
|
@ -151,8 +154,10 @@ class ImportForm(forms.Form):
|
|||
|
||||
if commit:
|
||||
for doc, cred in table:
|
||||
cred.save()
|
||||
create_index(doc, self.user)
|
||||
return table
|
||||
path_name = save_in_disk(doc, self.user.name)
|
||||
cred.save()
|
||||
create_index(doc, self.user)
|
||||
move_json(path_name, self.user.name)
|
||||
return table
|
||||
|
||||
return
|
||||
|
|
Loading…
Reference in a new issue