Projet

Général

Profil

0001-api-does-not-write-to-disk-during-form-card-listing-.patch

Benjamin Dauvergne, 15 septembre 2022 10:18

Télécharger (3,17 ko)

Voir les différences:

Subject: [PATCH] api: does not write to disk during form/card listing (#69090)

The call to increment_count() is only beneficial to the JSON file export
case.
 wcs/backoffice/management.py | 47 +++++++++++++++++++++++++++---------
 1 file changed, 36 insertions(+), 11 deletions(-)
wcs/backoffice/management.py
2453 2453
            if view_digest_key in (self.formdef.digest_templates or {}):
2454 2454
                digest_key = view_digest_key
2455 2455
        if get_request().form.get('full') == 'on':
2456
            output = JsonFileExportAfterJob(self.formdef).create_json_export(
2457
                items,
2458
                user=user,
2459
                anonymise=anonymise,
2460
                digest_key=digest_key,
2461
                include_evolution=True,
2462
                include_files=False,
2463
                include_roles=True,
2464
                include_unnamed_fields=False,
2456
            output = list(
2457
                JsonFileExportAfterJob(self.formdef).create_json_export_iterator(
2458
                    items,
2459
                    user=user,
2460
                    anonymise=anonymise,
2461
                    digest_key=digest_key,
2462
                    include_evolution=True,
2463
                    include_files=False,
2464
                    include_roles=True,
2465
                    include_unnamed_fields=False,
2466
                )
2465 2467
            )
2466 2468
        else:
2467 2469
            output = [
......
4267 4269
        super().__init__(formdef=formdef, **kwargs)
4268 4270
        self.file_name = '%s.json' % formdef.url_name
4269 4271

  
4270
    def create_json_export(
4272
    def create_json_export_iterator(
4271 4273
        self,
4272 4274
        items,
4273 4275
        user,
......
4305 4307
                for x in get_publisher().role_class.get_ids(role_ids, ignore_errors=True)
4306 4308
                if x is not None
4307 4309
            }
4308
        output = []
4309 4310
        for formdata in items:
4310 4311
            data = formdata.get_json_export_dict(
4311 4312
                anonymise=anonymise,
......
4321 4322
            data.pop('digests')
4322 4323
            if digest_key:
4323 4324
                data['digest'] = (formdata.digests or {}).get(digest_key)
4325
            yield data
4326

  
4327
    def create_json_export(
4328
        self,
4329
        items,
4330
        user,
4331
        anonymise,
4332
        digest_key,
4333
        include_evolution,
4334
        include_files,
4335
        include_roles,
4336
        include_unnamed_fields,
4337
    ):
4338
        output = []
4339
        for data in self.create_json_export_iterator(
4340
            items,
4341
            user,
4342
            anonymise,
4343
            digest_key,
4344
            include_evolution,
4345
            include_files,
4346
            include_roles,
4347
            include_unnamed_fields,
4348
        ):
4324 4349
            output.append(data)
4325 4350
            self.increment_count()
4326 4351
        return output
4327
-