API pour l'applification (#60773) #119
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/60773-applification"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
e53fd466c1
to529638977a
529638977a
to4382faef3a
4382faef3a
to50b6d3fb0f
50b6d3fb0f
to100a2be39d
100a2be39d
toe6e5eeb396
e6e5eeb396
to30ae285cd1
30ae285cd1
toc8a9b315b7
c8a9b315b7
tob5244ac4e9
C'est une version initiale pour démarrer ça et permettre d'être ensuite à plusieurs pour y ajouter les éléments manquants (l'implémentation du bundle-declare, l'affichage dans l'interface de l'application à laquelle appartient une page, la gestion des cartes, etc.).
@ -0,0 +63,4 @@
'id': str(page.uuid),
'text': page.title,
'indent': getattr(page, 'level', 0),
'type': 'portal-agent-pages' if is_portal_agent() else 'pages',
On distingue deux types de pages pour les applications, selon qu'on est le portail agent ou pas. (et ça devra être la même affaire quand on exportera davantage d'objets type les couches carto).
Ça permet de rester dans le modèle hobo actuel, sans devoir ajouter une notion de type de service qui distinguerait à ce niveau les pages du portail agent des pages du portail usager.
@ -0,0 +136,4 @@
permission_classes = (permissions.IsAuthenticated,)
def put(self, request, *args, **kwargs):
return Response({'err': 0})
Je laisse bundle-declare de côté.
@ -0,0 +158,4 @@
json.loads(tar.extractfile(f'{page_type}/{element["slug"]}').read().decode()).get('data')
)
if pages:
import_site({'pages': pages})
On prend toutes les pages et on importe tout ça; ça devrait s'étendre facilement pour y ajouter les cartes etc.
@ -171,0 +178,4 @@
'dependencies': f'{wcs_site_url}api/export-import/forms/{form_slug}/dependencies/',
'redirect': f'{wcs_site_url}api/export-import/forms/{form_slug}/redirect/',
}
yield {'type': 'forms', 'id': form_slug, 'text': self.cached_title, 'urls': urls}
Détection des dépendances inter-applications; si on a une cellule démarche on a la démarche en dépendance, et pareil pour les catégories de démarches, et les modèles de fiches.
@ -379,0 +380,4 @@
yield from self.get_children()
yield self.edit_role
yield self.subpages_edit_role
yield from self.groups.all()
En dépendances on a aussi les rôles.
b5244ac4e9
toc2c3d9b893
WIP: API pour l'applification (#60773)to API pour l'applification (#60773)@ -0,0 +67,4 @@
'order': order,
'urls': {
'export': request.build_absolute_uri(
reverse('api-export-import-page-export', kwargs={'pk': page.id})
Plutôt utiliser page.uuid partout, non ?
Oui en effet, mis dans un commit supplémentaire.
@ -1020,0 +1051,4 @@
'dependencies': f'{wcs_site_url}api/export-import/cards/{card_slug}/dependencies/',
'redirect': f'{wcs_site_url}api/export-import/cards/{card_slug}/redirect/',
}
yield {'type': 'cards', 'id': card_slug, 'text': self.cached_title, 'urls': urls}
Il va manquer, dans le cas d'un cellule avec custo, qui contient un champ de type lien, la dépendance à la page qui peut être paramétrée en target (mais on peut en faire un ticket)
(je pose ça ici, parce que l'app search n'a pas été modifiée dans cette PR: Il manquera aussi, pour les cellules de recherche, les dépendances à des fiches ou pages etc, mais là aussi on peut en faire un ticket)
Ça me va bien de passer par des tickets supplémentaires pour affiner/compléter tout ça (évidemment…).
c2c3d9b893
to8e66e2e410
414feebf14
to98b0792864
98b0792864
tof5ff197858