add typetracking

This commit is contained in:
2023-10-30 22:36:46 +01:00
parent acee6b0686
commit 8662cffa2e
5 changed files with 48 additions and 1 deletions

View File

@@ -0,0 +1,25 @@
# Generated by Django 4.2.6 on 2023-10-30 21:25
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('sde', '0001_initial'),
('api', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='TypeTracking',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tracked_by', to='sde.sdetype')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='types_tracking', to=settings.AUTH_USER_MODEL)),
],
),
]

View File

@@ -13,3 +13,8 @@ class Acquisition(models.Model):
source = models.CharField(max_length=255)
user = models.ForeignKey("auth.User", related_name="acquisitions", on_delete=models.CASCADE)
class TypeTracking(models.Model):
user = models.ForeignKey("auth.User", related_name="types_tracking", on_delete=models.CASCADE)
type = models.ForeignKey(SDEType, related_name="tracked_by", on_delete=models.CASCADE)

View File

@@ -1,7 +1,7 @@
from django.contrib.auth import models as auth_models
from rest_framework import serializers
from sde.models import SDEType
from api import models
from sde import serializers as sde_serializers, models as sde_models
class UserSerializer(serializers.ModelSerializer):
@@ -20,3 +20,10 @@ class AcquisitionSerializer(serializers.ModelSerializer):
class Meta:
model = models.Acquisition
fields = '__all__'
class TypeTrackingSerializer(serializers.ModelSerializer):
type = sde_serializers.SDETypeSerializer()
class Meta:
model = models.TypeTracking
fields = '__all__'

View File

@@ -6,6 +6,7 @@ router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
router.register(r'acquisitions', views.AcquisitionViewSet)
router.register(r'types_tracking', views.TypeTrackingViewSet)
urlpatterns = [
path('', include(router.urls)),

View File

@@ -38,6 +38,15 @@ class AcquisitionViewSet(viewsets.ModelViewSet):
permission_classes = [permissions.IsAuthenticated]
class TypeTrackingViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows types tracking to be viewed or edited.
"""
queryset = models.TypeTracking.objects.all()
serializer_class = serializers.TypeTrackingSerializer
permission_classes = [permissions.IsAuthenticated]
@api_view(['POST'])
def custom_types_search(request):
cache_key = f"custom_types_search_{request.data}"