add purchace limitations system for rancher - add incentive plans to rancher entries data

This commit is contained in:
2025-08-26 12:18:10 +03:30
parent b5dfcebafe
commit c0b6b8ddca
12 changed files with 142 additions and 14 deletions

View File

@@ -1,9 +1,14 @@
from rest_framework import viewsets
from apps.core.models import MobileTest
from apps.core.serializers import MobileTestSerializer, SystemConfigSerializer
from apps.core.models import MobileTest, SystemConfig
from rest_framework.response import Response
from apps.core.serializers import MobileTestSerializer
from rest_framework import viewsets
class MobileTestViewSet(viewsets.ModelViewSet):
queryset = MobileTest.objects.all()
serializer_class = MobileTestSerializer
class SystemConfigViewSet(viewsets.ModelViewSet):
queryset = SystemConfig.objects.all()
serializer_class = SystemConfigSerializer

View File

@@ -0,0 +1,34 @@
# Generated by Django 5.0 on 2025-08-26 07:49
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('core', '0006_mobiletest_creator_info_mobiletest_modifier_info'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='SystemConfig',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('creator_info', models.CharField(max_length=100, null=True)),
('modifier_info', models.CharField(max_length=100, null=True)),
('trash', models.BooleanField(default=False)),
('key', models.CharField(max_length=100, null=True)),
('value', models.CharField(max_length=100, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_createddby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_modifiedby', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
]

View File

@@ -44,3 +44,15 @@ class MobileTest(BaseModel):
longitude = models.DecimalField(max_digits=22, decimal_places=16)
count = models.IntegerField(default=0)
time = models.DateTimeField(auto_now_add=True)
class SystemConfig(BaseModel):
key = models.CharField(max_length=100, null=True)
value = models.CharField(max_length=100, null=True)
@classmethod
def get(cls, key, default=None):
try:
return cls.objects.get(key=key).value
except cls.DoesNotExist:
return default

View File

@@ -1,4 +1,4 @@
from apps.core.models import MobileTest
from apps.core.models import MobileTest, SystemConfig
from rest_framework import serializers
@@ -6,3 +6,9 @@ class MobileTestSerializer(serializers.ModelSerializer):
class Meta:
model = MobileTest
fields = '__all__'
class SystemConfigSerializer(serializers.ModelSerializer):
class Meta:
model = SystemConfig
fields = '__all__'

View File

@@ -1,9 +1,10 @@
from apps.core.api import MobileTestViewSet, SystemConfigViewSet
from rest_framework.routers import DefaultRouter
from apps.core.api import MobileTestViewSet
from django.urls import path, include
router = DefaultRouter()
router.register('mobile_test', MobileTestViewSet, basename='mobile_test')
router.register('system_config', SystemConfigViewSet, basename='system_config')
app_name = "core"
urlpatterns = [