add redis cache, Acquisition & django-esi
This commit is contained in:
31
api/migrations/0001_initial.py
Normal file
31
api/migrations/0001_initial.py
Normal file
@@ -0,0 +1,31 @@
|
||||
# Generated by Django 4.2.6 on 2023-10-29 11:10
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('sde', '0001_initial'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Acquisition',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('quantity', models.IntegerField()),
|
||||
('remaining', models.IntegerField()),
|
||||
('price', models.FloatField()),
|
||||
('date', models.DateTimeField(auto_now_add=True)),
|
||||
('source', models.CharField(max_length=255)),
|
||||
('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='acquisitions', to='sde.sdetype')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='acquisitions', to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
),
|
||||
]
|
||||
@@ -1,2 +1,15 @@
|
||||
from django.db import models
|
||||
from sde.models import SDEType
|
||||
|
||||
# models
|
||||
|
||||
class Acquisition(models.Model):
|
||||
type = models.ForeignKey(SDEType, related_name="acquisitions", on_delete=models.CASCADE)
|
||||
|
||||
quantity = models.IntegerField()
|
||||
remaining = models.IntegerField()
|
||||
|
||||
price = models.FloatField()
|
||||
date = models.DateTimeField(auto_now_add=True)
|
||||
source = models.CharField(max_length=255)
|
||||
|
||||
user = models.ForeignKey("auth.User", related_name="acquisitions", on_delete=models.CASCADE)
|
||||
|
||||
@@ -1,15 +1,22 @@
|
||||
from django.contrib.auth.models import User, Group
|
||||
from django.contrib.auth import models as auth_models
|
||||
from rest_framework import serializers
|
||||
from sde.models import SDEType
|
||||
from api import models
|
||||
|
||||
|
||||
class UserSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ['url', 'username', 'email', 'groups']
|
||||
model = auth_models.User
|
||||
fields = ['id', 'username', 'email', 'groups']
|
||||
|
||||
|
||||
class GroupSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Group
|
||||
fields = ['url', 'name']
|
||||
model = auth_models.Group
|
||||
fields = ['id', 'name']
|
||||
|
||||
|
||||
class AcquisitionSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Acquisition
|
||||
fields = '__all__'
|
||||
|
||||
@@ -5,6 +5,7 @@ from rest_framework import routers
|
||||
router = routers.DefaultRouter()
|
||||
router.register(r'users', views.UserViewSet)
|
||||
router.register(r'groups', views.GroupViewSet)
|
||||
router.register(r'acquisitions', views.AcquisitionViewSet)
|
||||
|
||||
urlpatterns = [
|
||||
path('', include(router.urls)),
|
||||
|
||||
28
api/views.py
28
api/views.py
@@ -1,21 +1,20 @@
|
||||
from django.shortcuts import render
|
||||
from django.contrib.auth.models import User, Group
|
||||
from django.http import JsonResponse
|
||||
from django.db.models import Q
|
||||
from django.contrib.auth import models as auth_models
|
||||
from rest_framework import viewsets, permissions, settings
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework.response import Response
|
||||
from api import serializers
|
||||
from sde import serializers as sde_serializers
|
||||
from django.http import JsonResponse
|
||||
from django.db.models import Q
|
||||
|
||||
from sde.models import SDEType
|
||||
from api import serializers, models
|
||||
from sde import serializers as sde_serializers, models as sde_models
|
||||
|
||||
|
||||
class UserViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows users to be viewed or edited.
|
||||
"""
|
||||
queryset = User.objects.all().order_by('-date_joined')
|
||||
queryset = auth_models.User.objects.all().order_by('-date_joined')
|
||||
serializer_class = serializers.UserSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
@@ -24,11 +23,20 @@ class GroupViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows groups to be viewed or edited.
|
||||
"""
|
||||
queryset = Group.objects.all()
|
||||
queryset = auth_models.Group.objects.all()
|
||||
serializer_class = serializers.GroupSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
|
||||
class AcquisitionViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows acquisitions to be viewed or edited.
|
||||
"""
|
||||
queryset = models.Acquisition.objects.all().order_by('-date')
|
||||
serializer_class = serializers.AcquisitionSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
|
||||
@api_view(['POST'])
|
||||
def custom_types_search(request):
|
||||
items = []
|
||||
@@ -51,7 +59,7 @@ def custom_types_search(request):
|
||||
if "not" in mods:
|
||||
condition = ~condition
|
||||
|
||||
items.extend(SDEType.objects.filter(condition))
|
||||
items.extend(sde_models.SDEType.objects.filter(condition))
|
||||
|
||||
paginator = settings.api_settings.DEFAULT_PAGINATION_CLASS()
|
||||
result_page = paginator.paginate_queryset(items, request)
|
||||
@@ -69,7 +77,7 @@ def reprocess_eval(request):
|
||||
|
||||
item_reprocess = []
|
||||
for rawitem in ep_items["items"]:
|
||||
item = SDEType.objects.get(id=rawitem["typeID"])
|
||||
item = sde_models.SDEType.objects.get(id=rawitem["typeID"])
|
||||
buy_reprocess = sell_reprocess = 0.0
|
||||
for mat in item.typematerials.all():
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user