cubes issueshttps://forge.extranet.logilab.fr/groups/cubicweb/cubes/-/issues2023-12-19T16:03:11Zhttps://forge.extranet.logilab.fr/cubicweb/cubes/rodolf/-/issues/2Définition du schéma YAMS2023-12-19T16:03:11ZFabien Amargerfabien.amarger@logilab.frDéfinition du schéma YAMShttps://forge.extranet.logilab.fr/cubicweb/cubes/rodolf/-/issues/7Trouver un nom2023-12-19T13:12:48ZFabien Amargerfabien.amarger@logilab.frTrouver un nomFabien Amargerfabien.amarger@logilab.frFabien Amargerfabien.amarger@logilab.frhttps://forge.extranet.logilab.fr/cubicweb/cubes/api/-/issues/35Expose the RQLSuggestionBuilder on a /rql-suggest route2023-12-18T11:52:43ZSimon ChabotExpose the RQLSuggestionBuilder on a /rql-suggest routeThe cubicweb RQLSuggestionBuilder (cf https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/blob/branch/4.x/cubicweb/rqlsuggestions.py#L28) can be exposed on a new route, for instance /rql-suggest, to make it available to client code.The cubicweb RQLSuggestionBuilder (cf https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/blob/branch/4.x/cubicweb/rqlsuggestions.py#L28) can be exposed on a new route, for instance /rql-suggest, to make it available to client code.https://forge.extranet.logilab.fr/cubicweb/cubes/rodolf/-/issues/10Ajouter la possibilité de spécialiser ImportProcess pour les CSV2023-12-14T09:54:03ZFabien Amargerfabien.amarger@logilab.frAjouter la possibilité de spécialiser ImportProcess pour les CSVhttps://forge.extranet.logilab.fr/cubicweb/cubes/rodolf/-/issues/8Validation par inférence de l'ontologie2023-12-13T15:17:43ZFabien Amargerfabien.amarger@logilab.frValidation par inférence de l'ontologieÀ chaque import, faire tourner un moteur d'inférence par rapport à l'ontologie définie pour vérifier la cohérence des données.
Mettre le résultat dans le rapport d'import.À chaque import, faire tourner un moteur d'inférence par rapport à l'ontologie définie pour vérifier la cohérence des données.
Mettre le résultat dans le rapport d'import.https://forge.extranet.logilab.fr/cubicweb/cubes/rodolf/-/issues/1Définition des fonctionnalités de base2023-12-13T14:52:58ZFabien Amargerfabien.amarger@logilab.frDéfinition des fonctionnalités de baseTout d'abord nous proposons de mettre en place une application de suivi de publication des données. Cette application sera le point d'entrée pour la publication des données
des institutions membres de l'association.
Chaque organisme pub...Tout d'abord nous proposons de mettre en place une application de suivi de publication des données. Cette application sera le point d'entrée pour la publication des données
des institutions membres de l'association.
Chaque organisme publiant des données pourra créer un compte et avoir accès à une interface pour définir les informations
nécessaires à la récupération des données de l'institution. Ces informations se limiteront à une URL où récupérer les données et la fréquence de mise à jour des données.
De cette manière, l'application de publication pourra récupérer périodiquement les données de l'institution. Chaque récupération sera associée à un rapport de validité,
qui contiendra des statistiques basiques sur ce qui a été importé (par exemple nombre d'instances importées par classe), les erreurs de validation de données s'il y en a
et la date à laquelle les données ont été collectées. De cette manière, il est possible, pour l'institution, de suivre ce qui a été publié.
L'application de suivi de production devra permettre de spécifier l'ontologie et les règles de validations (SHACL) que doivent respecter
les données des différentes institutions. Ces informations devront être définies dans une interface d'administration générale à toute
l'application et non pour une institution seulement.
De plus, l'application permetra de tester un jeu de données pour avoir un rapport d'erreurs rapidement afin de savoir si l'export effectué correspond à ce qui est attendu.
Une fois les données collectées, l'application de suivi de production des données RDF mettra à jour les données d'un entrepôt SPARQL, unique à toutes les institutions. Il
sera alors possible d'interroger l'intégralité des données des différentes institutions sur un seul et même entrepôt et ce en garantissant un maximum d'autonomie.
## liste des tâches à réaliser (à spécifier)
* Authentification
* Interface de saisi des informations de récupération des données
* Interface de saisi de l'ontologie et des règles de validation
* Script de récupération périodiques des données
* Validation des données (shape SHACL)
* Génération du rapport d'erreurs et de statistiques
* Service de tests rapide des données
* Déploiement d'un entrepôt SPARQL
* Mise à jour des donnéeshttps://forge.extranet.logilab.fr/cubicweb/cubes/web/-/issues/5[views]: url in urlattr are escaped2023-12-12T11:43:10ZSimon Chabot[views]: url in urlattr are escapedSimon ChabotSimon Chabothttps://forge.extranet.logilab.fr/cubicweb/cubes/intranet/-/issues/4deploy with helm2023-12-11T15:40:31ZNicolas Chauvatnicolas.chauvat@logilab.frdeploy with helm- [ ] https://forge.extranet.logilab.fr/logilab/infra/sysadmin/-/issues/2065- [ ] https://forge.extranet.logilab.fr/logilab/infra/sysadmin/-/issues/2065https://forge.extranet.logilab.fr/cubicweb/cubes/elasticsearch/-/issues/8[es] add an option for indexing numeric fields (Float, Int)2023-12-11T14:03:32ZKatia Saurfelt[es] add an option for indexing numeric fields (Float, Int)1.1.0https://forge.extranet.logilab.fr/cubicweb/cubes/intranet/-/issues/3upgrade to cubicweb 42023-12-11T13:42:57ZNicolas Chauvatnicolas.chauvat@logilab.frupgrade to cubicweb 4https://forge.extranet.logilab.fr/cubicweb/cubes/web/-/issues/3[reledit] : bug dans le calcul des permissions pour les relations pour l'affi...2023-12-08T15:46:37ZViet-Hung Nhu[reledit] : bug dans le calcul des permissions pour les relations pour l'affichage actionbox_appearsin_addmenuLes permissions sur l'ajout des entités peuvent être complexes, cette complexité n'est pas prise en compte dans le calcul des permissions
P.ex dans le cas de némo, la permission sur l'ajout d'un objet peut impliquer le sujet, ce qui n'e...Les permissions sur l'ajout des entités peuvent être complexes, cette complexité n'est pas prise en compte dans le calcul des permissions
P.ex dans le cas de némo, la permission sur l'ajout d'un objet peut impliquer le sujet, ce qui n'est pas pris en compte dans la méthode AddRelatedActions.add_related_schemashttps://forge.extranet.logilab.fr/cubicweb/cubes/jsonschema/-/issues/3Errors in site_cubicweb.py2023-12-07T13:23:59ZKatia SaurfeltErrors in site_cubicweb.py1.
``` File "/home/katia/.virtualenvs/siaf4.2/lib/python3.9/site-packages/cubicweb_jsonschema/site_cubicweb.py", line 60, in <module>
add_mappers_to_cube_appobject_path()
File "/home/katia/.virtualenvs/siaf4.2/lib/python3.9/site-p...1.
``` File "/home/katia/.virtualenvs/siaf4.2/lib/python3.9/site-packages/cubicweb_jsonschema/site_cubicweb.py", line 60, in <module>
add_mappers_to_cube_appobject_path()
File "/home/katia/.virtualenvs/siaf4.2/lib/python3.9/site-packages/cubicweb_jsonschema/site_cubicweb.py", line 52, in add_mappers_to_cube_appobject_path
LOGGER.warning(
Message: 'failed to import %s.%s, "mappers" appobjects will not loaded for this configuration'
```
2.
```
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 790, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/home/katia/src/siafcw28/jsonschema/cubicweb_jsonschema/site_cubicweb.py", line 59, in <module>
add_mappers_to_cube_appobject_path()
File "/home/katia/src/siafcw28/jsonschema/cubicweb_jsonschema/site_cubicweb.py", line 51, in add_mappers_to_cube_appobject_path
LOGGER.warning(
Message: 'failed to import %s.%s, "mappers" appobjects will not loaded for this configuration'
Arguments: (('cubicweb.server.serverconfig', 'ServerConfiguration'),)
```1.7.2Katia SaurfeltKatia Saurfelthttps://forge.extranet.logilab.fr/cubicweb/cubes/elasticsearch/-/issues/5Specifying types in requests is no longer supported2023-11-24T10:42:26ZKatia SaurfeltSpecifying types in requests is no longer supportedRemove `doc_types` argument from requestsRemove `doc_types` argument from requests1.1.0Katia SaurfeltKatia Saurfelthttps://forge.extranet.logilab.fr/cubicweb/cubes/elasticsearch/-/issues/7Upgrade elasticsearch and elasticsearch-dsl2023-11-24T10:42:25ZKatia SaurfeltUpgrade elasticsearch and elasticsearch-dslUpgrade elasticsearch and elasticsearch-dsl versions to ">=8.0.0,<9.0.0"Upgrade elasticsearch and elasticsearch-dsl versions to ">=8.0.0,<9.0.0"1.1.0Katia SaurfeltKatia Saurfelthttps://forge.extranet.logilab.fr/cubicweb/cubes/fresh/-/issues/6déployer avec helm2023-11-23T09:11:29ZNicolas Chauvatnicolas.chauvat@logilab.frdéployer avec helmhttps://forge.extranet.logilab.fr/cubicweb/cubes/seda/-/issues/18Adaptation à SEDA 2.22023-11-15T15:53:10ZNicolas Chauvatnicolas.chauvat@logilab.frAdaptation à SEDA 2.2dès que les spécifications seront officiellement publiéesdès que les spécifications seront officiellement publiéeshttps://forge.extranet.logilab.fr/cubicweb/cubes/elasticsearch/-/issues/4Update to ES 8.X2023-11-03T14:14:59ZKatia SaurfeltUpdate to ES 8.XUpdate to the latest (8.10) ElasticSearc versionUpdate to the latest (8.10) ElasticSearc version1.1.0Katia SaurfeltKatia Saurfelthttps://forge.extranet.logilab.fr/cubicweb/cubes/elasticsearch/-/issues/6Common terms query is no longer supported in ES 8.X2023-10-31T18:03:00ZKatia SaurfeltCommon terms query is no longer supported in ES 8.X[deprecation.elasticsearch][CRITICAL] Deprecated field [common] used, replaced by [[match] query which can efficiently skip blocks of documents if the total number of hits is not tracked][deprecation.elasticsearch][CRITICAL] Deprecated field [common] used, replaced by [[match] query which can efficiently skip blocks of documents if the total number of hits is not tracked]1.1.0https://forge.extranet.logilab.fr/cubicweb/cubes/elasticsearch/-/issues/2AttributeError: 'int' object has no attribute 'lower'2023-10-31T18:00:59ZKatia SaurfeltAttributeError: 'int' object has no attribute 'lower'```
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_francearchives/pviews/tweens.py", line 56, in sanitize_parameters_tween
return handler(request)
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb...```
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_francearchives/pviews/tweens.py", line 56, in sanitize_parameters_tween
return handler(request)
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_francearchives/pviews/tweens.py", line 103, in script_name_factory
return handler(request)
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_francearchives/pviews/tweens.py", line 86, in https_tween
return handler(request)
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_francearchives/pviews/tweens.py", line 74, in langprefix_tween
response = handler(request)
File "/usr/lib/python3/dist-packages/pyramid/tweens.py", line 43, in excview_tween
response = _error_handler(request, exc)
File "/usr/lib/python3/dist-packages/pyramid/tweens.py", line 17, in _error_handler
reraise(*exc_info)
File "/usr/lib/python3/dist-packages/pyramid/compat.py", line 179, in reraise
raise value
File "/usr/lib/python3/dist-packages/pyramid/tweens.py", line 41, in excview_tween
response = handler(request)
File "/usr/lib/python3/dist-packages/pyramid/router.py", line 148, in handle_request
registry, request, context, context_iface, view_name
File "/home/cubicweb/.local/lib/python3.7/site-packages/sentry_sdk/integrations/pyramid.py", line 90, in sentry_patched_call_view
return old_call_view(registry, request, *args, **kwargs)
File "/usr/lib/python3/dist-packages/pyramid/view.py", line 657, in _call_view
response = view_callable(context, request)
File "/usr/lib/python3/dist-packages/pyramid/config/views.py", line 188, in attr_view
return view(context, request)
File "/usr/lib/python3/dist-packages/pyramid/config/views.py", line 214, in predicate_wrapper
return view(context, request)
File "/usr/lib/python3/dist-packages/pyramid/viewderivers.py", line 401, in viewresult_to_response
result = view(context, request)
File "/usr/lib/python3/dist-packages/pyramid/viewderivers.py", line 144, in _requestonly_view
response = view(request)
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_francearchives/pviews/faroutes.py", line 204, in all_documents_view
return Response(viewsreg.main_template(cwreq, "main-template", rset=None, view=view))
File "/usr/lib/python3/dist-packages/cubicweb/cwvreg.py", line 223, in main_template
res = obj.render(**kwargs)
File "/usr/lib/python3/dist-packages/cubicweb/view.py", line 175, in render
view_func(**context)
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_francearchives/views/templates.py", line 106, in call
context = self.template_context(view)
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_francearchives/views/templates.py", line 246, in template_context
"xml_escaped_title": xml_escape(view.page_title()),
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_francearchives/views/search/__init__.py", line 146, in page_title
title = self.search_title()
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_francearchives/views/search/__init__.py", line 121, in search_title
response, query_string = self.cached_search_response
File "/usr/lib/python3/dist-packages/logilab/common/decorators.py", line 173, in __get__
val = self.wrapped(inst)
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_francearchives/views/search/__init__.py", line 104, in cached_search_response
self._esresponse = self.do_search(query_string)
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_elasticsearch/views.py", line 136, in do_search
value[index] = normalize_value(value[index])
File "/home/cubicweb/.local/lib/python3.7/site-packages/cubicweb_elasticsearch/views.py", line 38, in normalize_value
if value.lower() == "true":
AttributeError: 'int' object has no attribute 'lower'
```Katia SaurfeltKatia Saurfelthttps://forge.extranet.logilab.fr/cubicweb/cubes/elasticsearch/-/issues/3pypi-publish: commands failed2023-10-31T17:58:45ZKatia Saurfeltpypi-publish: commands failedhttps://forge.extranet.logilab.fr/cubicweb/cubes/elasticsearch/-/jobs/459580
```
> 197pypi-publish run-test: commands[2] | twine check 'dist/*'
> 198Checking dist/cubicweb_elasticsearch-0.11.1-py3-none-any.whl: PASSED, with warnings
> 1...https://forge.extranet.logilab.fr/cubicweb/cubes/elasticsearch/-/jobs/459580
```
> 197pypi-publish run-test: commands[2] | twine check 'dist/*'
> 198Checking dist/cubicweb_elasticsearch-0.11.1-py3-none-any.whl: PASSED, with warnings
> 199 warning: `long_description_content_type` missing. defaulting to `text/x-rst`.
> 200Checking dist/cubicweb-elasticsearch-0.11.1.tar.gz: PASSED, with warnings
> 201 warning: `long_description_content_type` missing. defaulting to `text/x-rst`.
> 202pypi-publish run-test: commands[3] | twine upload --skip-existing 'dist/*'
> 203Uploading distributions to https://upload.pypi.org/legacy/
> 204Enter your username: Traceback (most recent call last):
> 205 File "/builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/bin/twine", line 8, in <module>
> 206 sys.exit(main())
> 207 File "/builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/lib/python3.10/site-packages/twine/__main__.py", line 28, in main
> 208 result = cli.dispatch(sys.argv[1:])
> 209 File "/builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/lib/python3.10/site-packages/twine/cli.py", line 71, in dispatch
> 210 return main(args.args)
> 211 File "/builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/lib/python3.10/site-packages/twine/commands/upload.py", line 194, in main
> 212 return upload(upload_settings, parsed_args.dists)
> 213 File "/builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/lib/python3.10/site-packages/twine/commands/upload.py", line 126, in upload
> 214 repository = upload_settings.create_repository()
> 215 File "/builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/lib/python3.10/site-packages/twine/settings.py", line 331, in create_repository
> 216 self.username,
> 217 File "/builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/lib/python3.10/site-packages/twine/settings.py", line 132, in username
> 218 return cast(Optional[str], self.auth.username)
> 219 File "/builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/lib/python3.10/site-packages/twine/auth.py", line 35, in username
> 220 return utils.get_userpass_value(
> 221 File "/builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/lib/python3.10/site-packages/twine/utils.py", line 251, in get_userpass_value
> 222 value = prompt_strategy()
> 223 File "/builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/lib/python3.10/site-packages/twine/auth.py", line 84, in username_from_keyring_or_prompt
> 224 return self.prompt("username", input)
> 225 File "/builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/lib/python3.10/site-packages/twine/auth.py", line 95, in prompt
> 226 return how(f"Enter your {what}: ")
> 227EOFError: EOF when reading a line
> 228ERROR: InvocationError for command /builds/cubicweb/cubes/elasticsearch/.tox/pypi-publish/bin/twine upload --skip-existing 'dist/*' (exited with code 1)
```