コード例 #1
0
def delete_feature(sender, instance, **kwargs):
    if app_settings.GEOSTORE_RELATION_CELERY_ASYNC:
        kwargs['relation_id'] = None
        kwargs.pop('signal')
        features = []
        for relation_destination in instance.layer.relations_as_destination.all():
            features.extend(relation_destination.origin.features.values_list('id', flat=True))
        execute_async_func(feature_update_relations_origins, (features, kwargs))
コード例 #2
0
def update_topologies_near_feature(sender, instance, **kwargs):
    """ Launch topology updates near feature on routable layers """
    if instance.layer.routable:
        args = (instance.layer_id, instance.geom.ewkt)
        execute_async_func(feature_update_routing,
                           args)\
            if app_settings.GEOSTORE_ROUTING_CELERY_ASYNC \
            else feature_update_routing(*args)
コード例 #3
0
def execute_async_save(update_fields, instance, kwargs):
    # update_fields=None (most of the time) .save()
    # update_fields=['geom', 'properties] => update everything
    if update_fields is None or 'geom' in update_fields:
        execute_async_func(feature_update_relations_and_properties, (instance.pk, kwargs))
    # update_fields=['properties'] => update only relations properties
    elif "properties" in update_fields:
        execute_async_func(feature_update_destination_properties, (instance.pk, kwargs))
コード例 #4
0
def save_layer_relation(sender, instance, **kwargs):
    if app_settings.GEOSTORE_RELATION_CELERY_ASYNC:
        execute_async_func(layer_relations_set_destinations, (instance.pk,))
コード例 #5
0
def save_feature(sender, instance, **kwargs):
    if app_settings.GEOSTORE_RELATION_CELERY_ASYNC:
        execute_async_func(feature_update_relations_destinations, (instance.pk,))