diff --git a/dashboard/templates/unassigned_devices.html b/dashboard/templates/unassigned_devices.html index 867dcdc..14085bb 100644 --- a/dashboard/templates/unassigned_devices.html +++ b/dashboard/templates/unassigned_devices.html @@ -9,12 +9,6 @@

{{ subtitle }}

- {% if lot %} - - - {% trans 'Documents' %} - - {% endif %} {% trans 'Exports' %} diff --git a/device/models.py b/device/models.py index 5ea61ff..745c250 100644 --- a/device/models.py +++ b/device/models.py @@ -71,17 +71,6 @@ class Device: ) return user_properties - def get_user_documents(self): - if not self.uuids: - self.get_uuids() - - user_properties = UserProperty.objects.filter( - uuid__in=self.uuids, - owner=self.owner, - type=UserProperty.Type.DOCUMENT - ) - return user_properties - def get_uuids(self): for a in self.get_properties(): if a.uuid not in self.uuids: @@ -164,7 +153,7 @@ class Device: ELSE 3 END, t1.created DESC - ) AS row_num + ) AS row_num FROM evidence_systemproperty AS t1 LEFT JOIN lot_devicelot AS t2 ON t1.value = t2.device_id WHERE t2.device_id IS NULL diff --git a/device/templates/physical_properties.html b/device/templates/physical_properties.html deleted file mode 100644 index cd4aedd..0000000 --- a/device/templates/physical_properties.html +++ /dev/null @@ -1,251 +0,0 @@ -{% extends "base.html" %} -{% load i18n %} - -{% block content %} -
-
-

{{ object.pk }}

-
-
- -
-
- -
-
-
- -
-
Details
-
-
- (Edit Device) -
-
- {%if object.hid %}Snapshot{% else %}Placeholder{% endif %} -
-
- -
-
Phid
-
{{ object.id }}
-
- -
-
Id device internal
-
-
- -
-
Type
-
{{ object.type }}
-
- -
-
Manufacturer
-
{{ object.manufacturer|default:"" }}
-
- -
-
Model
-
{{ object.model|default:"" }}
-
- -
-
Part Number
-
{{ object.part_number|default:"" }}
-
- -
-
Serial Number
-
{{ object.serial_number|default:"" }}
-
-
- -
-
Physical Properties
- - -
-
- {% load django_bootstrap5 %} -
- {% csrf_token %} - {% if form.errors %} - - {% endif %} - {% bootstrap_form form %} - - -
-
-
-
- - -
-
Incoming Lots
- -
- -
- -
Outgoing Lots
- -
- -
- -
Temporary Lots
- -
- -
-
- -
- - -
Documents
- - - - - - - - - - - - - - -
FileTypeDescriptionUploaded on
-
- -
-
Status Details
-
-
Physical State
-
- -
-
-
-
Lifecycle State
-
- -
-
-
-
Allocated State
-
- -
-
-
- -
-
Traceability log Details
-
- -
- Snapshot ✓ - 14:07 23-06-2024 -
- -
- EraseCrypto ✓ - 14:07 23-06-2024 -
- -
- EraseCrypto ✓ - 14:07 23-06-2024 -
- -
-
- -
-
Components Snapshot
-
- -
-
-
Motherboard
- 14:07 23-06-2024 -
-

- hp
- 890e
-

- - -
- -
-
-
NetworkAdapter
- 14:07 23-06-2024 -
-

- realtek semiconductor co., ltd.
- rtl8852ae 802.11ax pcie wireless network adapter
-

- - -
- -
-
-
-{% endblock %} diff --git a/device/urls.py b/device/urls.py index 875a21e..67bce3d 100644 --- a/device/urls.py +++ b/device/urls.py @@ -10,7 +10,5 @@ urlpatterns = [ path("/user_property/add", views.AddUserPropertyView.as_view(), name="add_user_property"), path("user_property//delete", views.DeleteUserPropertyView.as_view(), name="delete_user_property"), path("user_property//update", views.UpdateUserPropertyView.as_view(), name="update_user_property"), - path("/document/add", views.AddDocumentView.as_view(), name="add_document"), path("/public/", views.PublicDeviceWebView.as_view(), name="device_web"), - ] diff --git a/device/views.py b/device/views.py index b0aec06..8d79b22 100644 --- a/device/views.py +++ b/device/views.py @@ -293,34 +293,3 @@ class DeleteUserPropertyView(DashboardView, DeleteView): def get_success_url(self): return self.request.META.get('HTTP_REFERER', reverse_lazy('device:details', args=[self.object.pk])) - -class AddDocumentView(DashboardView, CreateView): - template_name = "new_user_property.html" - title = _("New Document") - breadcrumb = "Device / New document" - success_url = reverse_lazy('dashboard:unassigned_devices') - model = UserProperty - fields = ("key", "value") - - def form_valid(self, form): - form.instance.owner = self.request.user.institution - form.instance.user = self.request.user - form.instance.uuid = self.property.uuid - form.instance.type = UserProperty.Type.DOCUMENT - response = super().form_valid(form) - return response - - def get_form_kwargs(self): - pk = self.kwargs.get('pk') - institution = self.request.user.institution - self.property = SystemProperty.objects.filter( - owner=institution, - value=pk, - ).first() - - if not self.property: - raise Http404 - - self.success_url = reverse_lazy('device:details', args=[pk]) - kwargs = super().get_form_kwargs() - return kwargs diff --git a/dhub/settings.py b/dhub/settings.py index 1cef207..7ad93a2 100644 --- a/dhub/settings.py +++ b/dhub/settings.py @@ -78,16 +78,13 @@ INSTALLED_APPS = [ 'django_extensions', 'django_bootstrap5', 'django_tables2', - "rest_framework", "login", "user", "device", "evidence", - "action", - "tag", "lot", - "documents", "dashboard", + "action", "admin", "api", ] diff --git a/documents/__init__.py b/documents/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/documents/admin.py b/documents/admin.py deleted file mode 100644 index 8c38f3f..0000000 --- a/documents/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/documents/apps.py b/documents/apps.py deleted file mode 100644 index 37ce729..0000000 --- a/documents/apps.py +++ /dev/null @@ -1,6 +0,0 @@ -from django.apps import AppConfig - - -class DocumentsConfig(AppConfig): - default_auto_field = "django.db.models.BigAutoField" - name = "documents" diff --git a/documents/migrations/__init__.py b/documents/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/documents/models.py b/documents/models.py deleted file mode 100644 index 71a8362..0000000 --- a/documents/models.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.db import models - -# Create your models here. diff --git a/documents/tests.py b/documents/tests.py deleted file mode 100644 index 7ce503c..0000000 --- a/documents/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/documents/views.py b/documents/views.py deleted file mode 100644 index 91ea44a..0000000 --- a/documents/views.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.shortcuts import render - -# Create your views here. diff --git a/evidence/migrations/0005_alter_userproperty_type.py b/evidence/migrations/0005_alter_userproperty_type.py new file mode 100644 index 0000000..5ea0dc8 --- /dev/null +++ b/evidence/migrations/0005_alter_userproperty_type.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0.6 on 2025-01-29 11:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("evidence", "0004_remove_userproperty_user_unique_type_key_uuid"), + ] + + operations = [ + migrations.AlterField( + model_name="userproperty", + name="type", + field=models.SmallIntegerField( + choices=[(1, "User"), (2, "EraseServer")], default=1 + ), + ), + ] diff --git a/evidence/models.py b/evidence/models.py index c9c38ec..9a57344 100644 --- a/evidence/models.py +++ b/evidence/models.py @@ -41,8 +41,7 @@ class UserProperty(Property): class Type(models.IntegerChoices): USER = 1, "User" - DOCUMENT = 2, "Document" - ERASE_SERVER = 3, "EraseServer" + ERASE_SERVER = 2, "EraseServer" type = models.SmallIntegerField(choices=Type, default=Type.USER) diff --git a/evidence/serializers.py b/evidence/serializers.py deleted file mode 100644 index c9524b6..0000000 --- a/evidence/serializers.py +++ /dev/null @@ -1,43 +0,0 @@ -from rest_framework import serializers -from evidence.models import EvidenceJson - -import json - -from django.views.decorators.csrf import csrf_exempt -from django.http import JsonResponse -from evidence.parse import Parse - -class EvidenceSerializer(serializers.ModelSerializer): - class Meta: - model = EvidenceJson - fields = ['id', 'title', 'content'] - -@csrf_exempt -def webhook_verify(request): - if request.method == 'POST': - auth_header = request.headers.get('Authorization') - if not auth_header or not auth_header.startswith('Bearer '): - return JsonResponse({'error': 'Invalid authorization'}, status=401) - - token = auth_header.split(' ')[1] - tk = Token.objects.filter(token=token).first() - if not tk: - return JsonResponse({'error': 'Invalid authorization'}, status=401) - - try: - data = json.loads(request.body) - except json.JSONDecodeError: - return JsonResponse({'error': 'Invalid JSON'}, status=400) - - try: - device = Parse(data) - except Exception: - return JsonResponse({'error': 'Invalid JSON'}, status=400) - - if not device: - return JsonResponse({'error': 'Invalid JSON'}, status=400) - - return JsonResponse({"result": "Ok"}, status=200) - - - return JsonResponse({'error': 'Invalid request method'}, status=400) diff --git a/lot/migrations/0005_alter_lotproperty_type.py b/lot/migrations/0005_alter_lotproperty_type.py new file mode 100644 index 0000000..db7e644 --- /dev/null +++ b/lot/migrations/0005_alter_lotproperty_type.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0.6 on 2025-01-29 11:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("lot", "0004_remove_lotproperty_lot_unique_type_key_lot_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="lotproperty", + name="type", + field=models.SmallIntegerField( + choices=[(0, "System"), (1, "User")], default=1 + ), + ), + ] diff --git a/lot/models.py b/lot/models.py index 2980dd8..e836fd1 100644 --- a/lot/models.py +++ b/lot/models.py @@ -6,8 +6,8 @@ from utils.constants import ( STR_EXTEND_SIZE, ) -from user.models import User, Institution -from evidence.models import Property +from user.models import User, Institution +from evidence.models import Property # from device.models import Device @@ -40,7 +40,7 @@ class Lot(models.Model): if DeviceLot.objects.filter(lot=self, device_id=v).exists(): return DeviceLot.objects.create(lot=self, device_id=v) - + def remove(self, v): for d in DeviceLot.objects.filter(lot=self, device_id=v): d.delete() @@ -51,6 +51,5 @@ class LotProperty (Property): class Type(models.IntegerChoices): SYSTEM = 0, "System" USER = 1, "User" - DOCUMENT = 2, "Document" type = models.SmallIntegerField(choices=Type.choices, default=Type.USER) diff --git a/lot/templates/documents.html b/lot/templates/documents.html deleted file mode 100644 index f8abac9..0000000 --- a/lot/templates/documents.html +++ /dev/null @@ -1,48 +0,0 @@ -{% extends "base.html" %} -{% load i18n %} - -{% block content %} -
-
-

Lot {{ lot.name }}

-
-
- -
-
- - -
Documents
- - - - - - - - - - - - {% for a in documents %} - - - - - - - - {% endfor %} - - -
KeyValueCreated on
{{ a.key }}{{ a.value }}{{ a.created }}
-
-
-{% endblock %} diff --git a/lot/urls.py b/lot/urls.py index 3c30ec9..3456f91 100644 --- a/lot/urls.py +++ b/lot/urls.py @@ -10,8 +10,6 @@ urlpatterns = [ path("add/devices/", views.AddToLotView.as_view(), name="add_devices"), path("del/devices/", views.DelToLotView.as_view(), name="del_devices"), path("tag//", views.LotsTagsView.as_view(), name="tag"), - path("/document/", views.LotDocumentsView.as_view(), name="documents"), - path("/document/add", views.LotAddDocumentView.as_view(), name="add_document"), path("/property", views.LotPropertiesView.as_view(), name="properties"), path("/property/add", views.AddLotPropertyView.as_view(), name="add_property"), path("/property/update", views.UpdateLotPropertyView.as_view(), name="update_property"), diff --git a/lot/views.py b/lot/views.py index 7137a41..c34e08c 100644 --- a/lot/views.py +++ b/lot/views.py @@ -142,53 +142,6 @@ class LotsTagsView(DashboardView, TemplateView): return context -class LotAddDocumentView(DashboardView, CreateView): - template_name = "new_property.html" - title = _("New Document") - breadcrumb = "Device / New document" - success_url = reverse_lazy('dashboard:unassigned_devices') - model = LotProperty - fields = ("key", "value") - - def form_valid(self, form): - form.instance.owner = self.request.user.institution - form.instance.user = self.request.user - form.instance.lot = self.lot - form.instance.type = LotProperty.Type.DOCUMENT - response = super().form_valid(form) - return response - - def get_form_kwargs(self): - pk = self.kwargs.get('pk') - self.lot = get_object_or_404(Lot, pk=pk, owner=self.request.user.institution) - self.success_url = reverse_lazy('lot:documents', args=[pk]) - kwargs = super().get_form_kwargs() - return kwargs - - -class LotDocumentsView(DashboardView, TemplateView): - template_name = "documents.html" - title = _("New Document") - breadcrumb = "Devicce / New document" - - def get_context_data(self, **kwargs): - self.pk = kwargs.get('pk') - context = super().get_context_data(**kwargs) - lot = get_object_or_404(Lot, owner=self.request.user.institution, id=self.pk) - documents = LotProperty.objects.filter( - lot=lot, - owner=self.request.user.institution, - type=LotProperty.Type.DOCUMENT, - ) - context.update({ - 'lot': lot, - 'documents': documents, - 'title': self.title, - 'breadcrumb': self.breadcrumb - }) - return context - - class LotPropertiesView(DashboardView, TemplateView): template_name = "properties.html" title = _("New Lot Property") diff --git a/tag/__init__.py b/tag/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tag/admin.py b/tag/admin.py deleted file mode 100644 index 8c38f3f..0000000 --- a/tag/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/tag/apps.py b/tag/apps.py deleted file mode 100644 index 8a3c701..0000000 --- a/tag/apps.py +++ /dev/null @@ -1,6 +0,0 @@ -from django.apps import AppConfig - - -class TagConfig(AppConfig): - default_auto_field = "django.db.models.BigAutoField" - name = "tag" diff --git a/tag/migrations/__init__.py b/tag/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tag/models.py b/tag/models.py deleted file mode 100644 index 71a8362..0000000 --- a/tag/models.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.db import models - -# Create your models here. diff --git a/tag/tests.py b/tag/tests.py deleted file mode 100644 index 7ce503c..0000000 --- a/tag/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/tag/views.py b/tag/views.py deleted file mode 100644 index 91ea44a..0000000 --- a/tag/views.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.shortcuts import render - -# Create your views here.