limit changesets by operations, not changedobjects

This commit is contained in:
Laura Klünder 2024-12-05 23:40:42 +01:00
parent 44671a12dc
commit 6f87510df8
3 changed files with 3 additions and 2 deletions

View file

@ -19,7 +19,7 @@ class UserPermissions(models.Model):
review_changesets = models.BooleanField(default=False, verbose_name=_('can review changesets')) review_changesets = models.BooleanField(default=False, verbose_name=_('can review changesets'))
direct_edit = models.BooleanField(default=False, verbose_name=_('can activate direct editing')) direct_edit = models.BooleanField(default=False, verbose_name=_('can activate direct editing'))
max_changeset_changes = models.PositiveSmallIntegerField(default=10, verbose_name=_('max changes per changeset')) max_changeset_changes = models.PositiveSmallIntegerField(default=20, verbose_name=_('max changes per changeset'))
editor_access = models.BooleanField(default=False, verbose_name=_('can always access editor')) editor_access = models.BooleanField(default=False, verbose_name=_('can always access editor'))
sources_access = models.BooleanField(default=False, verbose_name=_('can access sources in editor')) sources_access = models.BooleanField(default=False, verbose_name=_('can access sources in editor'))
base_mapdata_access = models.BooleanField(default=False, verbose_name=_('can always access base map data')) base_mapdata_access = models.BooleanField(default=False, verbose_name=_('can always access base map data'))

View file

@ -672,6 +672,7 @@ class ChangedObjectCollection(BaseSchema):
objects=[last_operation, new_operation], objects=[last_operation, new_operation],
) )
elif (isinstance(last_operation, CreateMultipleObjectsOperation) and elif (isinstance(last_operation, CreateMultipleObjectsOperation) and
len(last_operation.objects) < 25 and
last_operation.objects[-1].obj.model == new_operation.obj.model): last_operation.objects[-1].obj.model == new_operation.obj.model):
last_operation.objects.append(new_operation) last_operation.objects.append(new_operation)
else: else:

View file

@ -128,7 +128,7 @@ def space_detail(request, level, pk):
def get_changeset_exceeded(request): def get_changeset_exceeded(request):
return request.user_permissions.max_changeset_changes <= len(request.changeset.changes) return request.user_permissions.max_changeset_changes <= len(request.changeset.as_operations)
@etag(editor_etag_func) @etag(editor_etag_func)