Merge branch 'run_ml_for_pvz' into 'dev'

run_ml_for_pvz

See merge request spatial/postamates!76
dev
Timofey Malinin 3 years ago
commit b1a2cd6552

@ -79,7 +79,8 @@ class GroupAdmin(admin.ModelAdmin):
class PostPvzGroupAdmin(GroupAdmin):
def save_model(self, request, obj, form, change):
run_psql_command()
if not obj.pk:
run_psql_command()
super().save_model(request, obj, form, change)

@ -0,0 +1,21 @@
# Generated by Django 3.2 on 2023-08-24 17:29
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('service', '0026_auto_20230823_2016'),
]
operations = [
migrations.CreateModel(
name='PostMLChecker',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('current', models.IntegerField(default=0)),
('target', models.IntegerField()),
],
),
]

@ -215,3 +215,8 @@ class LastMLCall(models.Model):
class TempFiles(models.Model):
data = models.TextField(blank=False, null=False)
class PostMLChecker(models.Model):
current = models.IntegerField(default=0,blank=False, null=False)
target = models.IntegerField(blank=False, null=False)

@ -3,9 +3,10 @@ from rest_registration.signals import user_registered
from service.layer_service import LayerService
from service.models import Post_and_pvz, Post_and_pvzGroup, Post_and_pvzCategory, OtherObjects, OtherObjectsGroup, \
OtherObjectsCategory
OtherObjectsCategory, PostMLChecker
from django.db.models.signals import post_save
from django.dispatch import receiver
from service.tasks import raschet
def user_created(sender, user, request, **kwargs):
@ -20,11 +21,22 @@ user_registered.connect(user_created)
@receiver(post_save, sender=Post_and_pvz)
def post_pvz_handler(sender, instance, **kwargs):
LayerService().count_post_pvz_for_placementpoint(instance)
checker = PostMLChecker.objects.first()
if not checker:
raschet.delay()
else:
if checker.current >= checker.target - 1:
raschet.delay()
PostMLChecker.objects.all().delete()
else:
checker.current += 1
checker.save()
@receiver(post_save, sender=Post_and_pvzGroup)
def post_group_handler(sender, instance, **kwargs):
objects = Post_and_pvz.objects.filter(group=instance)
PostMLChecker.objects.create(target=objects.count())
for obj in objects:
obj.include_in_ml = instance.include_in_ml
obj.visible = instance.visible
@ -34,6 +46,7 @@ def post_group_handler(sender, instance, **kwargs):
@receiver(post_save, sender=Post_and_pvzCategory)
def post_category_handler(sender, instance, **kwargs):
objects = Post_and_pvzGroup.objects.filter(category=instance)
PostMLChecker.objects.create(target=Post_and_pvz.objects.filter(category=instance).count())
for obj in objects:
obj.include_in_ml = instance.include_in_ml
obj.visible = instance.visible

Loading…
Cancel
Save