Projet

Général

Profil

0001-signal-publik-add-a-role-to-test-signal-publik-deplo.patch

Nicolas Roche, 13 juin 2019 18:06

Télécharger (97,6 ko)

Voir les différences:

Subject: [PATCH] signal-publik: add a role to test signal-publik deployement
 locally (#33957)

 README.rst                                    |  35 +
 delete-signal-all-tenants.yml                 |  32 +
 delete-signal-tenants.yml                     |  28 +
 deploy-signal-tenants.yml                     |   8 +
 roles/deploy-signal-tenants/defaults/main.yml |   5 +
 roles/deploy-signal-tenants/tasks/main.yml    |  40 +
 .../templates/authentic.tpl                   | 675 ++++++++++++
 .../templates/cook-recipe.j2                  |  53 +
 .../templates/passerelle.tpl                  |  51 +
 .../templates/portal-agent.tpl                | 239 +++++
 .../templates/portal-user.tpl                 | 995 ++++++++++++++++++
 .../templates/publik.zip                      | Bin 0 -> 52436 bytes
 roles/deploy-signal-tenants/vars/main.yml     |   7 +
 13 files changed, 2168 insertions(+)
 create mode 100644 delete-signal-all-tenants.yml
 create mode 100644 delete-signal-tenants.yml
 create mode 100644 deploy-signal-tenants.yml
 create mode 100644 roles/deploy-signal-tenants/defaults/main.yml
 create mode 100644 roles/deploy-signal-tenants/tasks/main.yml
 create mode 100644 roles/deploy-signal-tenants/templates/authentic.tpl
 create mode 100644 roles/deploy-signal-tenants/templates/cook-recipe.j2
 create mode 100644 roles/deploy-signal-tenants/templates/passerelle.tpl
 create mode 100644 roles/deploy-signal-tenants/templates/portal-agent.tpl
 create mode 100644 roles/deploy-signal-tenants/templates/portal-user.tpl
 create mode 100644 roles/deploy-signal-tenants/templates/publik.zip
 create mode 100644 roles/deploy-signal-tenants/vars/main.yml
README.rst
5 5

  
6 6
A complete version of the documentation is maintained here:
7 7
https://dev.entrouvert.org/projects/publik-devinst/wiki/Installation_d'un_environnement_de_développement_local
8

  
9
---8<---
10
Ci-dessous la procédure pour signal-publik seulement :
11

  
12
Initialiser authentic (pour simuler du multi-publik) :
13
* Créer un authentic (et le reste aussi mais on va le détruire) 
14
$ ansible-playbook -i inventory.yml deploy-signal-tenants.yml -vvv
15

  
16
* Créer un rôle 'Agent' via l'IHM :
17
    https://signal-authentic.dev.publik.love/manage/roles
18
  puis modifier son uuid via psql (pour que l'appairage fonctionne):
19
$ psql
20
> \c authentic_multitenant
21
> set search_path="signal_authentic_dev_publik_love";
22
> update a2_rbac_role set uuid = '45ac46653a94423fb2d60091bb826cbd' where name = 'Agent';
23

  
24
A présent on peut rejouer autant de fois que voulu le déploiement :
25
* Suppression de tout sauf de l'authentic
26
$ ansible-playbook -i inventory.yml delete-signal-tenants.yml
27

  
28
* Préparation de la recette et premier lancement du cook : 
29
$ ansible-playbook -i inventory.yml deploy-signal-tenants.yml
30

  
31
* modifier la description du rôle 'Agent' via l'IHM :
32
    https://signal-authentic.dev.publik.love/manage/roles
33

  
34
* Second lancement du cook :
35
$ hobo-manage cook /tmp/cook-recipe-signal.json
36

  
37

  
38
nb: en cas de problèmes de connexion, penser à relancer les serveurs :
39
# supervisorctl restart all
40

  
41
les logs de hobo-agent permettent de suivre le déploiement :
42
# tail -f /var/log/hobo-agent/stderr.log 
delete-signal-all-tenants.yml
1
---
2
- name: delete all publik tenants
3
  hosts: local
4
  vars:
5
    venv_bin: "{{venv}}/bin"
6
  roles:
7
    - facts
8

  
9
  tasks:
10
    - name: "delete hobo tenant"
11
      command: "{{venv_bin}}/{{apps['hobo']['project_name']}}-manage delete_tenant signal-{{tenants_conf['dev-hobo']}}"
12
      ignore_errors: yes
13

  
14
    - name: "delete combo user tenant"
15
      command: "{{venv_bin}}/{{apps['combo']['project_name']}}-manage delete_tenant signal-{{tenants_conf['user-combo']}}"
16
      ignore_errors: yes
17

  
18
    - name: "delete combo agent tenant"
19
      command: "{{venv_bin}}/{{apps['combo']['project_name']}}-manage delete_tenant signal-{{tenants_conf['agent-combo']}}"
20
      ignore_errors: yes
21

  
22
    - name: "delete authentic tenant"
23
      command: "{{venv_bin}}/{{apps['authentic']['project_name']}}-manage delete_tenant signal.{{tenants_conf['connexion-authentic']}}"
24
      ignore_errors: yes
25

  
26
    - name: "delete wcs tenant"
27
      command: "{{venv_bin}}/wcsctl.py delete_tenant signal-{{tenants_conf['demarches-wcs']}}"
28
      ignore_errors: yes
29

  
30
    - name: "delete passerelle tenant"
31
      command: "{{venv_bin}}/{{apps['passerelle']['project_name']}}-manage delete_tenant signal-{{tenants_conf['dev-passerelle']}}"
32
      ignore_errors: yes
delete-signal-tenants.yml
1
---
2
- name: delete all publik tenants
3
  hosts: local
4
  vars:
5
    venv_bin: "{{venv}}/bin"
6
  roles:
7
    - facts
8

  
9
  tasks:
10
    - name: "delete hobo tenant"
11
      command: "{{venv_bin}}/{{apps['hobo']['project_name']}}-manage delete_tenant signal-{{tenants_conf['dev-hobo']}}"
12
      ignore_errors: yes
13

  
14
    - name: "delete combo user tenant"
15
      command: "{{venv_bin}}/{{apps['combo']['project_name']}}-manage delete_tenant signal-{{tenants_conf['user-combo']}}"
16
      ignore_errors: yes
17

  
18
    - name: "delete combo agent tenant"
19
      command: "{{venv_bin}}/{{apps['combo']['project_name']}}-manage delete_tenant signal-{{tenants_conf['agent-combo']}}"
20
      ignore_errors: yes
21

  
22
    - name: "delete wcs tenant"
23
      command: "{{venv_bin}}/wcsctl.py delete_tenant signal-{{tenants_conf['demarches-wcs']}}"
24
      ignore_errors: yes
25

  
26
    - name: "delete passerelle tenant"
27
      command: "{{venv_bin}}/{{apps['passerelle']['project_name']}}-manage delete_tenant signal-{{tenants_conf['dev-passerelle']}}"
28
      ignore_errors: yes
deploy-signal-tenants.yml
1
---
2
- name: deploy signal-publik tenants for local developement
3
  hosts: local
4
  roles:
5
    - facts
6
    - deploy-signal-tenants
7
  vars:
8
    venv_bin: "{{venv}}/bin"
roles/deploy-signal-tenants/defaults/main.yml
1
superuser_username: "admin"
2
superuser_email: "admin@localhost"
3
superuser_firstname: "admin"
4
superuser_lastname: "admin"
5
superuser_password: "admin"
roles/deploy-signal-tenants/tasks/main.yml
1
- debug :
2
    msg: |
3
      "IF {{ tenants_conf['dev-hobo'] }} or any sub-domain from 'tenants_conf' DNS is not configured locally, this playbook will block and fail. Check the documentation."
4

  
5
- name : copies a wcs skeleton archive
6
  copy:
7
    src: templates/publik.zip
8
    dest:  "/var/lib/wcs/skeletons/{{wcs_skeleton_filename}}"
9

  
10
- name : copies passerelle skeleton archive
11
  copy:
12
    src: templates/passerelle.tpl
13
    dest:  "/var/lib/passerelle/skeletons/signal-publik.json"
14

  
15
- name : copies portal-user skeleton archive
16
  copy:
17
    src: templates/portal-user.tpl
18
    dest:  "/var/lib/combo/skeletons/signal-publik-portal-user.json"
19

  
20
- name : copies portal-agent skeleton archive
21
  copy:
22
    src: templates/portal-agent.tpl
23
    dest:  "/var/lib/combo/skeletons/signal-publik-portal-agent.json"
24

  
25
- name : copies authentik skeleton archive
26
  copy:
27
    src: templates/authentic.tpl
28
    dest:  "/var/lib/authentic-multitenant/skeletons/authentic.json"
29

  
30
- name: copies a cook json template
31
  template:
32
    src: templates/cook-recipe.j2
33
    dest: "{{wcs_dev_template_path}}"
34

  
35
- name: Run command hobo-manage to initiate the development subdomains and a super-user
36
  command: "{{venv_bin}}/hobo-manage cook {{wcs_dev_template_path}} --timeout=600"
37

  
38
- debug :
39
    msg: |
40
      "Houra ! Go and click manage on this URL https://signal-{{tenants_conf['user-combo']}} with username = {{superuser_username}} and password = {{superuser_password}}"
roles/deploy-signal-tenants/templates/authentic.tpl
1
{
2
    "ous": [
3
        {
4
            "username_is_unique": false, 
5
            "validate_emails": false, 
6
            "uuid": "a8cc3f485d7642899272585cf39c503f", 
7
            "default": true, 
8
            "description": "", 
9
            "email_is_unique": false, 
10
            "slug": "default", 
11
            "name": "Collectivit\u00e9 par d\u00e9faut"
12
        }
13
    ], 
14
    "roles": [
15
        {
16
            "description": "", 
17
            "service": {
18
                "ou": {
19
                    "slug": "default", 
20
                    "uuid": "a8cc3f485d7642899272585cf39c503f", 
21
                    "name": "Collectivit\u00e9 par d\u00e9faut"
22
                }, 
23
                "slug": "hobo"
24
            }, 
25
            "name": "Administrateur de Hobo", 
26
            "attributes": [
27
                {
28
                    "kind": "string", 
29
                    "name": "is_superuser", 
30
                    "value": "true"
31
                }
32
            ], 
33
            "ou": {
34
                "slug": "default", 
35
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
36
                "name": "Collectivit\u00e9 par d\u00e9faut"
37
            }, 
38
            "external_id": "", 
39
            "slug": "_a2-hobo-superuser", 
40
            "uuid": "efa47a8677ce466a9999c5b94e60953b"
41
        }, 
42
        {
43
            "description": "", 
44
            "service": {
45
                "ou": {
46
                    "slug": "default", 
47
                    "uuid": "a8cc3f485d7642899272585cf39c503f", 
48
                    "name": "Collectivit\u00e9 par d\u00e9faut"
49
                }, 
50
                "slug": "portal"
51
            }, 
52
            "name": "Administrateur de Portail", 
53
            "attributes": [
54
                {
55
                    "kind": "string", 
56
                    "name": "is_superuser", 
57
                    "value": "true"
58
                }
59
            ], 
60
            "ou": {
61
                "slug": "default", 
62
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
63
                "name": "Collectivit\u00e9 par d\u00e9faut"
64
            }, 
65
            "external_id": "", 
66
            "slug": "_a2-hobo-superuser", 
67
            "uuid": "df5804baabf243a7a150cf7d34221088"
68
        }, 
69
        {
70
            "description": "", 
71
            "service": {
72
                "ou": {
73
                    "slug": "default", 
74
                    "uuid": "a8cc3f485d7642899272585cf39c503f", 
75
                    "name": "Collectivit\u00e9 par d\u00e9faut"
76
                }, 
77
                "slug": "portal-agent"
78
            }, 
79
            "name": "Administrateur de Portail Agent", 
80
            "attributes": [
81
                {
82
                    "kind": "string", 
83
                    "name": "is_superuser", 
84
                    "value": "true"
85
                }
86
            ], 
87
            "ou": {
88
                "slug": "default", 
89
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
90
                "name": "Collectivit\u00e9 par d\u00e9faut"
91
            }, 
92
            "external_id": "", 
93
            "slug": "_a2-hobo-superuser", 
94
            "uuid": "0a316d673d9340b08847d549c0a24eda"
95
        }, 
96
        {
97
            "description": "", 
98
            "service": {
99
                "ou": {
100
                    "slug": "default", 
101
                    "uuid": "a8cc3f485d7642899272585cf39c503f", 
102
                    "name": "Collectivit\u00e9 par d\u00e9faut"
103
                }, 
104
                "slug": "eservices"
105
            }, 
106
            "name": "Administrateur de D\u00e9marches", 
107
            "attributes": [
108
                {
109
                    "kind": "string", 
110
                    "name": "is_superuser", 
111
                    "value": "true"
112
                }
113
            ], 
114
            "ou": {
115
                "slug": "default", 
116
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
117
                "name": "Collectivit\u00e9 par d\u00e9faut"
118
            }, 
119
            "external_id": "", 
120
            "slug": "_a2-hobo-superuser", 
121
            "uuid": "d6d2fbec36df4381b2bc8ce1e2be0839"
122
        }, 
123
        {
124
            "description": "", 
125
            "service": {
126
                "ou": {
127
                    "slug": "default", 
128
                    "uuid": "a8cc3f485d7642899272585cf39c503f", 
129
                    "name": "Collectivit\u00e9 par d\u00e9faut"
130
                }, 
131
                "slug": "passerelle"
132
            }, 
133
            "name": "Administrateur de Passerelle", 
134
            "attributes": [
135
                {
136
                    "kind": "string", 
137
                    "name": "is_superuser", 
138
                    "value": "true"
139
                }
140
            ], 
141
            "ou": {
142
                "slug": "default", 
143
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
144
                "name": "Collectivit\u00e9 par d\u00e9faut"
145
            }, 
146
            "external_id": "", 
147
            "slug": "_a2-hobo-superuser", 
148
            "uuid": "78f6288997614cd1ac0758eff85d6771"
149
        }, 
150
        {
151
            "description": "", 
152
            "service": {
153
                "ou": {
154
                    "slug": "default", 
155
                    "uuid": "a8cc3f485d7642899272585cf39c503f", 
156
                    "name": "Collectivit\u00e9 par d\u00e9faut"
157
                }, 
158
                "slug": "statistics"
159
            }, 
160
            "name": "Administrateur de Statistiques", 
161
            "attributes": [
162
                {
163
                    "kind": "string", 
164
                    "name": "is_superuser", 
165
                    "value": "true"
166
                }
167
            ], 
168
            "ou": {
169
                "slug": "default", 
170
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
171
                "name": "Collectivit\u00e9 par d\u00e9faut"
172
            }, 
173
            "external_id": "", 
174
            "slug": "_a2-hobo-superuser", 
175
            "uuid": "c49ae192ae4945058205a4bfedcf91ef"
176
        }, 
177
        {
178
            "description": "", 
179
            "service": null, 
180
            "name": "Administrateur du r\u00f4le \u00ab\u00a0Administrateur fonctionnel\u00a0\u00bb", 
181
            "ou": {
182
                "slug": "default", 
183
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
184
                "name": "Collectivit\u00e9 par d\u00e9faut"
185
            }, 
186
            "permissions": [
187
                {
188
                    "operation": {
189
                        "slug": "view"
190
                    }, 
191
                    "ou": null, 
192
                    "target_ct": {
193
                        "model": "contenttype", 
194
                        "app_label": "contenttypes"
195
                    }, 
196
                    "target": {
197
                        "model": "user", 
198
                        "app_label": "custom_user"
199
                    }
200
                }, 
201
                {
202
                    "operation": {
203
                        "slug": "admin"
204
                    }, 
205
                    "ou": {
206
                        "slug": "default", 
207
                        "uuid": "a8cc3f485d7642899272585cf39c503f", 
208
                        "name": "Collectivit\u00e9 par d\u00e9faut"
209
                    }, 
210
                    "target_ct": {
211
                        "model": "role", 
212
                        "app_label": "a2_rbac"
213
                    }, 
214
                    "target": {
215
                        "name": "Administrateur fonctionnel", 
216
                        "ou": {
217
                            "slug": "default", 
218
                            "uuid": "a8cc3f485d7642899272585cf39c503f", 
219
                            "name": "Collectivit\u00e9 par d\u00e9faut"
220
                        }, 
221
                        "uuid": "4d4294780a8648da9bc514b345853e84", 
222
                        "service": null, 
223
                        "slug": "administrateur-fonctionnel"
224
                    }
225
                }, 
226
                {
227
                    "operation": {
228
                        "slug": "change"
229
                    }, 
230
                    "ou": null, 
231
                    "target_ct": {
232
                        "model": "role", 
233
                        "app_label": "a2_rbac"
234
                    }, 
235
                    "target": {
236
                        "name": "Administrateur du r\u00f4le \u00ab\u00a0Administrateur fonctionnel\u00a0\u00bb", 
237
                        "ou": {
238
                            "slug": "default", 
239
                            "uuid": "a8cc3f485d7642899272585cf39c503f", 
240
                            "name": "Collectivit\u00e9 par d\u00e9faut"
241
                        }, 
242
                        "uuid": "16601f315cc24b318170a5d52a884dd6", 
243
                        "service": null, 
244
                        "slug": "_a2-managers-of-role-administrateur-fonctionnel"
245
                    }
246
                }
247
            ], 
248
            "external_id": "", 
249
            "slug": "_a2-managers-of-role-administrateur-fonctionnel", 
250
            "uuid": "16601f315cc24b318170a5d52a884dd6"
251
        }, 
252
        {
253
            "description": "", 
254
            "service": null, 
255
            "name": "Administrateur du r\u00f4le \u00ab\u00a0Agent\u00a0\u00bb", 
256
            "ou": {
257
                "slug": "default", 
258
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
259
                "name": "Collectivit\u00e9 par d\u00e9faut"
260
            }, 
261
            "permissions": [
262
                {
263
                    "operation": {
264
                        "slug": "view"
265
                    }, 
266
                    "ou": null, 
267
                    "target_ct": {
268
                        "model": "contenttype", 
269
                        "app_label": "contenttypes"
270
                    }, 
271
                    "target": {
272
                        "model": "user", 
273
                        "app_label": "custom_user"
274
                    }
275
                }, 
276
                {
277
                    "operation": {
278
                        "slug": "admin"
279
                    }, 
280
                    "ou": {
281
                        "slug": "default", 
282
                        "uuid": "a8cc3f485d7642899272585cf39c503f", 
283
                        "name": "Collectivit\u00e9 par d\u00e9faut"
284
                    }, 
285
                    "target_ct": {
286
                        "model": "role", 
287
                        "app_label": "a2_rbac"
288
                    }, 
289
                    "target": {
290
                        "name": "Agent", 
291
                        "ou": {
292
                            "slug": "default", 
293
                            "uuid": "a8cc3f485d7642899272585cf39c503f", 
294
                            "name": "Collectivit\u00e9 par d\u00e9faut"
295
                        }, 
296
                        "uuid": "45ac46653a94423fb2d60091bb826cbd", 
297
                        "service": null, 
298
                        "slug": "agent"
299
                    }
300
                }, 
301
                {
302
                    "operation": {
303
                        "slug": "change"
304
                    }, 
305
                    "ou": null, 
306
                    "target_ct": {
307
                        "model": "role", 
308
                        "app_label": "a2_rbac"
309
                    }, 
310
                    "target": {
311
                        "name": "Administrateur du r\u00f4le \u00ab\u00a0Agent\u00a0\u00bb", 
312
                        "ou": {
313
                            "slug": "default", 
314
                            "uuid": "a8cc3f485d7642899272585cf39c503f", 
315
                            "name": "Collectivit\u00e9 par d\u00e9faut"
316
                        }, 
317
                        "uuid": "c1d2bd9314794b92b90edac34a78d086", 
318
                        "service": null, 
319
                        "slug": "_a2-managers-of-role-agent"
320
                    }
321
                }
322
            ], 
323
            "external_id": "", 
324
            "slug": "_a2-managers-of-role-agent", 
325
            "uuid": "c1d2bd9314794b92b90edac34a78d086"
326
        }, 
327
        {
328
            "description": "", 
329
            "service": null, 
330
            "name": "Administrateur du r\u00f4le \u00ab\u00a0Debug EO\u00a0\u00bb", 
331
            "ou": {
332
                "slug": "default", 
333
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
334
                "name": "Collectivit\u00e9 par d\u00e9faut"
335
            }, 
336
            "permissions": [
337
                {
338
                    "operation": {
339
                        "slug": "view"
340
                    }, 
341
                    "ou": null, 
342
                    "target_ct": {
343
                        "model": "contenttype", 
344
                        "app_label": "contenttypes"
345
                    }, 
346
                    "target": {
347
                        "model": "user", 
348
                        "app_label": "custom_user"
349
                    }
350
                }, 
351
                {
352
                    "operation": {
353
                        "slug": "admin"
354
                    }, 
355
                    "ou": {
356
                        "slug": "default", 
357
                        "uuid": "a8cc3f485d7642899272585cf39c503f", 
358
                        "name": "Collectivit\u00e9 par d\u00e9faut"
359
                    }, 
360
                    "target_ct": {
361
                        "model": "role", 
362
                        "app_label": "a2_rbac"
363
                    }, 
364
                    "target": {
365
                        "name": "Debug EO", 
366
                        "ou": {
367
                            "slug": "default", 
368
                            "uuid": "a8cc3f485d7642899272585cf39c503f", 
369
                            "name": "Collectivit\u00e9 par d\u00e9faut"
370
                        }, 
371
                        "uuid": "427664f4dc4e48d4a5f848a17b9c0387", 
372
                        "service": null, 
373
                        "slug": "debug-eo"
374
                    }
375
                }, 
376
                {
377
                    "operation": {
378
                        "slug": "change"
379
                    }, 
380
                    "ou": null, 
381
                    "target_ct": {
382
                        "model": "role", 
383
                        "app_label": "a2_rbac"
384
                    }, 
385
                    "target": {
386
                        "name": "Administrateur du r\u00f4le \u00ab\u00a0Debug EO\u00a0\u00bb", 
387
                        "ou": {
388
                            "slug": "default", 
389
                            "uuid": "a8cc3f485d7642899272585cf39c503f", 
390
                            "name": "Collectivit\u00e9 par d\u00e9faut"
391
                        }, 
392
                        "uuid": "84a70d586064438da7ca0c466398baeb", 
393
                        "service": null, 
394
                        "slug": "_a2-managers-of-role-debug-eo"
395
                    }
396
                }
397
            ], 
398
            "external_id": "", 
399
            "slug": "_a2-managers-of-role-debug-eo", 
400
            "uuid": "84a70d586064438da7ca0c466398baeb"
401
        }, 
402
        {
403
            "description": "", 
404
            "service": null, 
405
            "name": "Administrateur fonctionnel", 
406
            "attributes": [
407
                {
408
                    "kind": "json", 
409
                    "name": "emails", 
410
                    "value": "[]"
411
                }, 
412
                {
413
                    "kind": "json", 
414
                    "name": "details", 
415
                    "value": "\"\""
416
                }, 
417
                {
418
                    "kind": "json", 
419
                    "name": "emails_to_members", 
420
                    "value": "true"
421
                }
422
            ], 
423
            "ou": {
424
                "slug": "default", 
425
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
426
                "name": "Collectivit\u00e9 par d\u00e9faut"
427
            }, 
428
            "external_id": "", 
429
            "slug": "administrateur-fonctionnel", 
430
            "uuid": "4d4294780a8648da9bc514b345853e84"
431
        }, 
432
        {
433
            "description": "", 
434
            "service": null, 
435
            "name": "Agent", 
436
            "attributes": [
437
                {
438
                    "kind": "json", 
439
                    "name": "emails", 
440
                    "value": "[]"
441
                }, 
442
                {
443
                    "kind": "json", 
444
                    "name": "details", 
445
                    "value": "\"\""
446
                }, 
447
                {
448
                    "kind": "json", 
449
                    "name": "emails_to_members", 
450
                    "value": "true"
451
                }
452
            ], 
453
            "ou": {
454
                "slug": "default", 
455
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
456
                "name": "Collectivit\u00e9 par d\u00e9faut"
457
            }, 
458
            "external_id": "", 
459
            "slug": "agent", 
460
            "uuid": "45ac46653a94423fb2d60091bb826cbd"
461
        }, 
462
        {
463
            "description": "", 
464
            "service": null, 
465
            "name": "Debug EO", 
466
            "attributes": [
467
                {
468
                    "kind": "json", 
469
                    "name": "emails", 
470
                    "value": "[]"
471
                }, 
472
                {
473
                    "kind": "json", 
474
                    "name": "details", 
475
                    "value": "\"\""
476
                }, 
477
                {
478
                    "kind": "json", 
479
                    "name": "emails_to_members", 
480
                    "value": "true"
481
                }
482
            ], 
483
            "ou": {
484
                "slug": "default", 
485
                "uuid": "a8cc3f485d7642899272585cf39c503f", 
486
                "name": "Collectivit\u00e9 par d\u00e9faut"
487
            }, 
488
            "external_id": "", 
489
            "slug": "debug-eo", 
490
            "uuid": "427664f4dc4e48d4a5f848a17b9c0387"
491
        }, 
492
        {
493
            "description": "", 
494
            "service": null, 
495
            "name": "Administrateur", 
496
            "parents": [
497
                {
498
                    "name": "Administrateur des utilisateurs", 
499
                    "ou": null, 
500
                    "uuid": "2e87dc99707f40a3a7290914fc1824c8", 
501
                    "service": null, 
502
                    "slug": "_a2-administrateur-des-utilisateurs"
503
                }, 
504
                {
505
                    "name": "Administrateur des r\u00f4les", 
506
                    "ou": null, 
507
                    "uuid": "5bb6482e46a143cb981848e1ba3388af", 
508
                    "service": null, 
509
                    "slug": "_a2-administrateur-des-roles"
510
                }, 
511
                {
512
                    "name": "Administrateur des entit\u00e9s", 
513
                    "ou": null, 
514
                    "uuid": "fe85dbb1977448c19e5a30a7f712aa7b", 
515
                    "service": null, 
516
                    "slug": "_a2-administrateur-des-entites"
517
                }
518
            ], 
519
            "ou": null, 
520
            "permissions": [
521
                {
522
                    "operation": {
523
                        "slug": "change"
524
                    }, 
525
                    "ou": null, 
526
                    "target_ct": {
527
                        "model": "role", 
528
                        "app_label": "a2_rbac"
529
                    }, 
530
                    "target": {
531
                        "name": "Administrateur", 
532
                        "ou": null, 
533
                        "uuid": "a583791a39674692ac19a256f0d54696", 
534
                        "service": null, 
535
                        "slug": "_a2-manager"
536
                    }
537
                }
538
            ], 
539
            "external_id": "", 
540
            "slug": "_a2-manager", 
541
            "uuid": "a583791a39674692ac19a256f0d54696"
542
        }, 
543
        {
544
            "description": "", 
545
            "service": null, 
546
            "name": "Administrateur des entit\u00e9s", 
547
            "ou": null, 
548
            "permissions": [
549
                {
550
                    "operation": {
551
                        "slug": "search"
552
                    }, 
553
                    "ou": null, 
554
                    "target_ct": {
555
                        "model": "contenttype", 
556
                        "app_label": "contenttypes"
557
                    }, 
558
                    "target": {
559
                        "model": "organizationalunit", 
560
                        "app_label": "a2_rbac"
561
                    }
562
                }, 
563
                {
564
                    "operation": {
565
                        "slug": "admin"
566
                    }, 
567
                    "ou": null, 
568
                    "target_ct": {
569
                        "model": "contenttype", 
570
                        "app_label": "contenttypes"
571
                    }, 
572
                    "target": {
573
                        "model": "organizationalunit", 
574
                        "app_label": "a2_rbac"
575
                    }
576
                }
577
            ], 
578
            "external_id": "", 
579
            "slug": "_a2-administrateur-des-entites", 
580
            "uuid": "fe85dbb1977448c19e5a30a7f712aa7b"
581
        }, 
582
        {
583
            "description": "", 
584
            "service": null, 
585
            "name": "Administrateur des r\u00f4les", 
586
            "ou": null, 
587
            "permissions": [
588
                {
589
                    "operation": {
590
                        "slug": "view"
591
                    }, 
592
                    "ou": null, 
593
                    "target_ct": {
594
                        "model": "contenttype", 
595
                        "app_label": "contenttypes"
596
                    }, 
597
                    "target": {
598
                        "model": "user", 
599
                        "app_label": "custom_user"
600
                    }
601
                }, 
602
                {
603
                    "operation": {
604
                        "slug": "search"
605
                    }, 
606
                    "ou": null, 
607
                    "target_ct": {
608
                        "model": "contenttype", 
609
                        "app_label": "contenttypes"
610
                    }, 
611
                    "target": {
612
                        "model": "organizationalunit", 
613
                        "app_label": "a2_rbac"
614
                    }
615
                }, 
616
                {
617
                    "operation": {
618
                        "slug": "admin"
619
                    }, 
620
                    "ou": null, 
621
                    "target_ct": {
622
                        "model": "contenttype", 
623
                        "app_label": "contenttypes"
624
                    }, 
625
                    "target": {
626
                        "model": "role", 
627
                        "app_label": "a2_rbac"
628
                    }
629
                }
630
            ], 
631
            "external_id": "", 
632
            "slug": "_a2-administrateur-des-roles", 
633
            "uuid": "5bb6482e46a143cb981848e1ba3388af"
634
        }, 
635
        {
636
            "description": "", 
637
            "service": null, 
638
            "name": "Administrateur des utilisateurs", 
639
            "ou": null, 
640
            "permissions": [
641
                {
642
                    "operation": {
643
                        "slug": "search"
644
                    }, 
645
                    "ou": null, 
646
                    "target_ct": {
647
                        "model": "contenttype", 
648
                        "app_label": "contenttypes"
649
                    }, 
650
                    "target": {
651
                        "model": "organizationalunit", 
652
                        "app_label": "a2_rbac"
653
                    }
654
                }, 
655
                {
656
                    "operation": {
657
                        "slug": "admin"
658
                    }, 
659
                    "ou": null, 
660
                    "target_ct": {
661
                        "model": "contenttype", 
662
                        "app_label": "contenttypes"
663
                    }, 
664
                    "target": {
665
                        "model": "user", 
666
                        "app_label": "custom_user"
667
                    }
668
                }
669
            ], 
670
            "external_id": "", 
671
            "slug": "_a2-administrateur-des-utilisateurs", 
672
            "uuid": "2e87dc99707f40a3a7290914fc1824c8"
673
        }
674
    ]
675
}
roles/deploy-signal-tenants/templates/cook-recipe.j2
1
{
2
  "steps": [
3
    {"create-hobo": {
4
      "url": "https://signal-{{tenants_conf['dev-hobo']}}/"
5
    }},
6
    {"create-superuser": {
7
      "username": "{{superuser_username}}",
8
      "first_name": "{{superuser_firstname}}",
9
      "last_name": "{{superuser_lastname}}",
10
      "email": "{{superuser_email}}",
11
      "password": "{{superuser_password}}"
12
    }},
13
    {"create-authentic": {
14
      "url": "https://signal-{{tenants_conf['connexion-authentic']}}/",
15
	"title": "Connexion"
16
    }},
17
    {"set-idp": {
18
    }},
19
    {"create-combo": {
20
        "url": "https://signal-{{tenants_conf['user-combo']}}/",
21
        "title": "Portail",
22
        "template_name": "signal-publik-portal-user"
23
    }},
24
    {"create-combo": {
25
        "url": "https://signal-{{tenants_conf['agent-combo']}}/",
26
        "title": "Portail Agent",
27
        "slug": "portal-agent",
28
        "template_name": "signal-publik-portal-agent"
29
    }},
30
    {"create-wcs": {
31
        "url": "https://signal-{{tenants_conf['demarches-wcs']}}/",
32
        "template_name": "{{wcs_skeleton_filename}}",
33
        "title": "Démarches"
34
    }},
35
    {"create-passerelle": {
36
        "url": "https://signal-{{tenants_conf['dev-passerelle']}}/",
37
	"template_name": "signal-publik",
38
        "title": "Passerelle"
39
    }},
40
    {"create-bijoe": {
41
        "url": "https://signal-{{tenants_conf['dev-bijoe']}}/",
42
        "title": "Statistiques"
43
    }},
44
    {"set-theme": {
45
      "theme": "clapotis-les-canards"
46
    }},
47
    {"set-variable": {
48
	"name": "collectivite",
49
	"value": "Paris 14",
50
	"label": "Collectivite"
51
    }}
52
  ]
53
}
roles/deploy-signal-tenants/templates/passerelle.tpl
1
{
2
    "apiusers": [
3
        {
4
            "username": "*", 
5
            "description": "", 
6
            "keytype": "", 
7
            "key": "", 
8
            "fullname": "*", 
9
            "ipsource": null, 
10
            "@type": "passerelle-user"
11
        }
12
    ], 
13
    "resources": [
14
        {
15
            "log_level": "INFO", 
16
            "description": "ban", 
17
            "title": "ban", 
18
            "zipcode": "", 
19
            "access_rights": [], 
20
            "@type": "passerelle-resource", 
21
            "service_url": "https://api-adresse.data.gouv.fr/", 
22
            "slug": "ban", 
23
            "resource_type": "base_adresse.baseadresse"
24
        }, 
25
        {
26
            "log_level": "INFO", 
27
            "description": "", 
28
            "title": "Foo", 
29
            "access_rights": [], 
30
            "@type": "passerelle-resource", 
31
            "text_value_template": "", 
32
            "slug": "foo", 
33
            "resource_type": "jsondatastore.jsondatastore"
34
        }, 
35
        {
36
            "log_level": "INFO", 
37
            "description": ".", 
38
            "title": "Bar", 
39
            "access_rights": [
40
                {
41
                    "codename": "can_access", 
42
                    "apiuser": "*"
43
                }
44
            ], 
45
            "@type": "passerelle-resource", 
46
            "text_value_template": "{{nom|safe}}", 
47
            "slug": "bar", 
48
            "resource_type": "jsondatastore.jsondatastore"
49
        }
50
    ]
51
}
roles/deploy-signal-tenants/templates/portal-agent.tpl
1
{
2
  "pwa": {
3
    "navigation": [], 
4
    "settings": {}
5
  }, 
6
  "map-layers": [], 
7
  "pages": [
8
    {
9
      "fields": {
10
        "sub_slug": "", 
11
        "picture": "", 
12
        "description": "", 
13
        "parent": null, 
14
        "title": "Accueil", 
15
        "last_update_timestamp": "2019-01-14T15:51:40.870Z", 
16
        "template_name": "standard-sidebar", 
17
        "order": 1, 
18
        "public": false, 
19
        "snapshot": null, 
20
        "redirect_url": "", 
21
        "groups": [
22
          "Agent"
23
        ], 
24
        "slug": "index", 
25
        "exclude_from_navigation": false
26
      }, 
27
      "cells": [
28
        {
29
          "model": "data.textcell", 
30
          "fields": {
31
            "extra_css_class": "", 
32
            "restricted_to_unlogged": false, 
33
            "last_update_timestamp": "2019-01-14T16:00:40.383Z", 
34
            "text": "<h1>Portail agent</h1>", 
35
            "slug": "", 
36
            "groups": [], 
37
            "order": 0, 
38
            "placeholder": "content", 
39
            "public": true
40
          }
41
        }, 
42
        {
43
          "model": "search.searchcell", 
44
          "fields": {
45
            "extra_css_class": "grid-1-2", 
46
            "restricted_to_unlogged": false, 
47
            "last_update_timestamp": "2019-01-14T16:01:14.193Z", 
48
            "slug": "", 
49
            "_search_services": {
50
              "data": [
51
                "users", 
52
                "tracking-code", 
53
                "_text", 
54
                "formdata:dd83e3ba"
55
              ]
56
            }, 
57
            "groups": [], 
58
            "order": 1, 
59
            "placeholder": "content", 
60
            "public": true
61
          }
62
        }, 
63
        {
64
          "model": "wcs.backofficesubmissioncell", 
65
          "fields": {
66
            "extra_css_class": "newline grid-1-2", 
67
            "restricted_to_unlogged": false, 
68
            "last_update_timestamp": "2019-01-14T15:51:40.162Z", 
69
            "wcs_site": "eservices", 
70
            "slug": "", 
71
            "groups": [], 
72
            "order": 2, 
73
            "placeholder": "content", 
74
            "public": true
75
          }
76
        }, 
77
        {
78
          "model": "data.textcell", 
79
          "fields": {
80
            "extra_css_class": "grid-1-2", 
81
            "restricted_to_unlogged": false, 
82
            "last_update_timestamp": "2019-01-14T15:51:40.293Z", 
83
            "text": "<h2>Services</h2>\r\n", 
84
            "slug": "services", 
85
            "groups": [], 
86
            "order": 3, 
87
            "placeholder": "content", 
88
            "public": true
89
          }
90
        }, 
91
        {
92
          "model": "data.textcell", 
93
          "fields": {
94
            "extra_css_class": "", 
95
            "restricted_to_unlogged": false, 
96
            "last_update_timestamp": "2019-01-14T15:51:40.513Z", 
97
            "text": "<p><strong>Bienvenue sur le portail des agents.</strong></p>\r\n", 
98
            "slug": "", 
99
            "groups": [], 
100
            "order": 5, 
101
            "placeholder": "sidebar", 
102
            "public": true
103
          }
104
        }, 
105
        {
106
          "model": "data.textcell", 
107
          "fields": {
108
            "extra_css_class": "", 
109
            "restricted_to_unlogged": false, 
110
            "last_update_timestamp": "2019-01-15T06:57:17.114Z", 
111
            "text": "<h2>Informations</h2>\r\n\r\n<p><a href=\"https://portail-agent.signalpublik.com/management/listing\">Vue globale</a></p>\r\n\r\n<p><a href=\"https://doc-publik.entrouvert.com/\">Documentation de Publik</a></p>\r\n\r\n<p><a href=\"https://portail-citoyen.signalpublik.com\">Portail usager (FO)</a></p>\r\n\r\n<p>&nbsp;</p>", 
112
            "slug": "", 
113
            "groups": [], 
114
            "order": 6, 
115
            "placeholder": "sidebar", 
116
            "public": true
117
          }
118
        }, 
119
        {
120
          "model": "data.parentcontentcell", 
121
          "fields": {
122
            "extra_css_class": "", 
123
            "restricted_to_unlogged": false, 
124
            "last_update_timestamp": "2019-01-14T15:51:40.728Z", 
125
            "slug": "", 
126
            "groups": [], 
127
            "order": 7, 
128
            "placeholder": "footer", 
129
            "public": true
130
          }
131
        }, 
132
        {
133
          "model": "dataviz.gauge", 
134
          "fields": {
135
            "extra_css_class": "", 
136
            "restricted_to_unlogged": false, 
137
            "data_source": "https://demarches.signalpublik.com/backoffice/management/count?waiting=yes", 
138
            "title": "Demandes \u00e0 traiter", 
139
            "last_update_timestamp": "2019-01-15T06:57:16.218Z", 
140
            "max_value": 50, 
141
            "jsonp_data_source": true, 
142
            "slug": "", 
143
            "url": "https://demarches.signalpublik.com/backoffice/management/listing", 
144
            "groups": [], 
145
            "order": 7, 
146
            "placeholder": "sidebar", 
147
            "public": true
148
          }
149
        }
150
      ]
151
    }, 
152
    {
153
      "fields": {
154
        "sub_slug": "(?P<name_id>[a-z0-9]+)", 
155
        "picture": "", 
156
        "description": "", 
157
        "parent": null, 
158
        "title": "Fiche usager", 
159
        "last_update_timestamp": "2019-01-15T06:58:38.181Z", 
160
        "template_name": "two-columns", 
161
        "order": 2, 
162
        "public": false, 
163
        "snapshot": null, 
164
        "redirect_url": "", 
165
        "groups": [
166
          "Agent"
167
        ], 
168
        "slug": "fiche-usager", 
169
        "exclude_from_navigation": false
170
      }, 
171
      "cells": [
172
        {
173
          "model": "profile.profilecell", 
174
          "fields": {
175
            "extra_css_class": "", 
176
            "restricted_to_unlogged": false, 
177
            "last_update_timestamp": "2019-01-14T15:51:41.023Z", 
178
            "slug": "", 
179
            "groups": [], 
180
            "order": 1, 
181
            "placeholder": "content", 
182
            "public": true
183
          }
184
        }, 
185
        {
186
          "model": "wcs.backofficesubmissioncell", 
187
          "fields": {
188
            "extra_css_class": "", 
189
            "restricted_to_unlogged": false, 
190
            "last_update_timestamp": "2019-01-14T15:51:41.137Z", 
191
            "wcs_site": "", 
192
            "slug": "", 
193
            "groups": [], 
194
            "order": 2, 
195
            "placeholder": "content", 
196
            "public": true
197
          }
198
        }, 
199
        {
200
          "model": "wcs.wcscurrentformscell", 
201
          "fields": {
202
            "extra_css_class": "", 
203
            "restricted_to_unlogged": false, 
204
            "groups": [], 
205
            "current_forms": true, 
206
            "last_update_timestamp": "2019-01-14T15:51:41.277Z", 
207
            "wcs_site": "", 
208
            "slug": "", 
209
            "done_forms": false, 
210
            "order": 3, 
211
            "placeholder": "right", 
212
            "public": true, 
213
            "categories": {}
214
          }
215
        }, 
216
        {
217
          "model": "wcs.wcscurrentformscell", 
218
          "fields": {
219
            "extra_css_class": "", 
220
            "restricted_to_unlogged": false, 
221
            "groups": [], 
222
            "current_forms": false, 
223
            "last_update_timestamp": "2019-01-14T15:51:41.564Z", 
224
            "wcs_site": "", 
225
            "slug": "", 
226
            "done_forms": true, 
227
            "order": 5, 
228
            "placeholder": "right", 
229
            "public": true, 
230
            "categories": {
231
              "data": []
232
            }
233
          }
234
        }
235
      ]
236
    }
237
  ], 
238
  "assets": []
239
}
roles/deploy-signal-tenants/templates/portal-user.tpl
1
{
2
  "pwa": {
3
    "navigation": [], 
4
    "settings": {}
5
  }, 
6
  "map-layers": [
7
    {
8
      "fields": {
9
        "icon_colour": "#000000", 
10
        "properties": "residence,prestataire,adresse", 
11
        "geojson_url": "https://data.toulouse-metropole.fr/api/records/1.0/search/?dataset=points_apport_volontaire_dmt&refine.flux=OM&format=geojson", 
12
        "label": "Ordures M\u00e9nageres", 
13
        "cache_duration": 60, 
14
        "marker_colour": "#28d747", 
15
        "include_user_identifier": true, 
16
        "slug": "ordures-menageres", 
17
        "icon": "trash"
18
      }
19
    }, 
20
    {
21
      "fields": {
22
        "icon_colour": "#000000", 
23
        "properties": "categorie_signalement,souscategorie_signalement", 
24
        "geojson_url": "https://demarches-montoulouse.cutm-publik-preprod.nfrance.com/api/forms/signalement-domaine-public/geojson?full=on&email=vclaudet@entrouvert.org", 
25
        "label": "signalements", 
26
        "cache_duration": 60, 
27
        "marker_colour": "#1323ec", 
28
        "include_user_identifier": false, 
29
        "slug": "signalements", 
30
        "icon": "warning"
31
      }
32
    }, 
33
    {
34
      "fields": {
35
        "icon_colour": "#000000", 
36
        "properties": "", 
37
        "geojson_url": "https://download.data.grandlyon.com/wfs/rdata?SERVICE=WFS&VERSION=2.0.0&outputformat=GEOJSON&maxfeatures=30&request=GetFeature&typename=jcd_jcdecaux.jcdvelov&SRSNAME=urn:ogc:def:crs:EPSG::4171", 
38
        "label": "velov", 
39
        "cache_duration": 60, 
40
        "marker_colour": "#ff00fe", 
41
        "include_user_identifier": true, 
42
        "slug": "velov", 
43
        "icon": "bicycle"
44
      }
45
    }
46
  ], 
47
  "pages": [
48
    {
49
      "fields": {
50
        "sub_slug": "", 
51
        "picture": "", 
52
        "description": "", 
53
        "parent": null, 
54
        "title": "Accueil", 
55
        "last_update_timestamp": "2019-01-15T07:43:05.116Z", 
56
        "template_name": "standard", 
57
        "order": 1, 
58
        "public": true, 
59
        "snapshot": null, 
60
        "redirect_url": "", 
61
        "groups": [], 
62
        "slug": "index", 
63
        "exclude_from_navigation": false
64
      }, 
65
      "cells": [
66
        {
67
          "model": "wcs.trackingcodeinputcell", 
68
          "fields": {
69
            "extra_css_class": "grid-1-3", 
70
            "restricted_to_unlogged": false, 
71
            "last_update_timestamp": "2019-01-15T07:43:16.865Z", 
72
            "wcs_site": "", 
73
            "slug": "", 
74
            "groups": [], 
75
            "order": 0, 
76
            "placeholder": "content", 
77
            "public": true
78
          }
79
        }, 
80
        {
81
          "model": "data.textcell", 
82
          "fields": {
83
            "extra_css_class": "", 
84
            "restricted_to_unlogged": false, 
85
            "last_update_timestamp": "2019-01-14T16:01:39.716Z", 
86
            "text": "<h1>Vos services <span style=\"color: #de3559\">en ligne</span></h1>\r\n\r\n<h2>Avec la mairie de Toulouse</h2>\r\n\r\n<p>Lorem ipsum dolor sit amet, vim oportere salutatus vulputate et, lorem equidem vis in, at mea facer possit. At homero consequuntur sea, idque virtute ei pri. Ad homero graeco meliore eos, decore inimicus in pri. Torquatos referrentur ad eos, no choro sanctus eum. Dicat facilisi reprimique at mel. Legere vituperatoribus ex per, vidisse delectus vituperata no pro.</p>", 
87
            "slug": "vos-services-en-ligne", 
88
            "groups": [], 
89
            "order": 0, 
90
            "placeholder": "intro", 
91
            "public": true
92
          }
93
        }, 
94
        {
95
          "model": "data.textcell", 
96
          "fields": {
97
            "extra_css_class": "", 
98
            "restricted_to_unlogged": true, 
99
            "last_update_timestamp": "2019-01-14T16:01:39.832Z", 
100
            "text": "<h3>Pas encore inscrit\u202f?</h3>\r\n\r\n<p>Effectuez vos d&eacute;marches et suivez leur traitement.</p>\r\n\r\n<p><a href=\"/register\" id=\"creer-mon-compte\">Cr&eacute;er mon compte maintenant</a></p>\r\n\r\n<p>D&eacute;j&agrave; inscrit\u202f? <a href=\"/login/\">Se connecter</a></p>", 
101
            "slug": "encart-inscription", 
102
            "groups": [], 
103
            "order": 1, 
104
            "placeholder": "intro", 
105
            "public": true
106
          }
107
        }, 
108
        {
109
          "model": "data.textcell", 
110
          "fields": {
111
            "extra_css_class": "grid-2-3", 
112
            "restricted_to_unlogged": false, 
113
            "last_update_timestamp": "2019-01-15T07:42:19.536Z", 
114
            "text": "<h1>Bienvenue sur le site de signalement de {{collectivite}}</h1>\r\n\r\n<p>Pour signaler un probl&egrave;me, vous pouvez choisir pami les cat&eacute;gories propos&eacute;es.</p>", 
115
            "slug": "", 
116
            "groups": [], 
117
            "order": 1, 
118
            "placeholder": "content", 
119
            "public": true
120
          }
121
        }, 
122
        {
123
          "model": "wcs.wcsformcell", 
124
          "fields": {
125
            "extra_css_class": "newline grid-1-3", 
126
            "restricted_to_unlogged": false, 
127
            "last_update_timestamp": "2019-06-04T12:18:07.492Z", 
128
            "formdef_reference": "eservices:arbres-espaces-verts-aires-de-jeux", 
129
            "slug": "tile", 
130
            "groups": [], 
131
            "order": 2, 
132
            "placeholder": "content", 
133
            "public": true
134
          }
135
        }, 
136
        {
137
          "model": "data.textcell", 
138
          "fields": {
139
            "extra_css_class": "", 
140
            "restricted_to_unlogged": false, 
141
            "last_update_timestamp": "2019-01-14T16:01:39.957Z", 
142
            "text": "<h3>Vous &ecirc;tes connect&eacute;\u202f!</h3>\r\n\r\n<p>Effectuez vos d&eacute;marches ci-dessous en toute simplicit&eacute;.</p>\r\n\r\n<p><a href=\"/tableau-de-bord/\" id=\"creer-mon-compte\">Suivre mes demandes</a></p>\r\n\r\n<p><a href=\"/logout/\">Se d&eacute;connecter</a></p>\r\n", 
143
            "slug": "encart-inscription", 
144
            "groups": [], 
145
            "order": 2, 
146
            "placeholder": "intro", 
147
            "public": false
148
          }
149
        }, 
150
        {
151
          "model": "wcs.wcsformsofcategorycell", 
152
          "fields": {
153
            "extra_css_class": "", 
154
            "restricted_to_unlogged": false, 
155
            "manual_order": {
156
              "data": [
157
                "eservices:etat-civil:carte-nationale-d-identite-cni-ou-passeport-prise-de-rendez-vous", 
158
                "eservices:etat-civil:demande-d-acte-de-mariage", 
159
                "eservices:etat-civil:demande-d-acte-de-naissance", 
160
                "eservices:etat-civil:demande-d-acte-de-deces", 
161
                "eservices:etat-civil:demande-d-acte-de-reconnaissance", 
162
                "eservices:etat-civil:demande-de-composteur-en-pied-d-immeuble", 
163
                "eservices:etat-civil:demande-de-composteur-en-structures-educatives", 
164
                "eservices:etat-civil:inscription-listes-electorales"
165
              ]
166
            }, 
167
            "last_update_timestamp": "2019-06-04T12:18:07.593Z", 
168
            "category_reference": "eservices:etat-civil", 
169
            "slug": "", 
170
            "ordering": "manual", 
171
            "limit": null, 
172
            "groups": [], 
173
            "order": 3, 
174
            "placeholder": "particuliers", 
175
            "public": true
176
          }
177
        }, 
178
        {
179
          "model": "data.textcell", 
180
          "fields": {
181
            "extra_css_class": "", 
182
            "restricted_to_unlogged": false, 
183
            "last_update_timestamp": "2019-01-15T07:51:13.351Z", 
184
            "text": "<p style=\"text-align: center;\">&nbsp;</p>\r\n\r\n<p style=\"text-align: center;\">SIGNAL PUBLIK</p>\r\n\r\n<p style=\"text-align: center;\">Service fourni par Entr&#39;ouvert</p>\r\n\r\n<p style=\"text-align: center;\"><a href=\"https://matrice.signalpublik.com/mentions-legales/\">Mentions l&eacute;gales</a> - <a href=\"https://matrice.signalpublik.com/conditions-generales-dutilisation/\">Conditions g&eacute;n&eacute;rales d&#39;utilisation</a></p>", 
185
            "slug": "", 
186
            "groups": [], 
187
            "order": 3, 
188
            "placeholder": "footer", 
189
            "public": true
190
          }
191
        }, 
192
        {
193
          "model": "wcs.wcsformsofcategorycell", 
194
          "fields": {
195
            "extra_css_class": "", 
196
            "restricted_to_unlogged": false, 
197
            "manual_order": {
198
              "data": []
199
            }, 
200
            "last_update_timestamp": "2019-06-04T12:18:07.645Z", 
201
            "category_reference": "eservices:prestations-periscolaires", 
202
            "slug": "", 
203
            "ordering": "manual", 
204
            "limit": null, 
205
            "groups": [], 
206
            "order": 4, 
207
            "placeholder": "particuliers", 
208
            "public": true
209
          }
210
        }, 
211
        {
212
          "model": "wcs.wcsformsofcategorycell", 
213
          "fields": {
214
            "extra_css_class": "", 
215
            "restricted_to_unlogged": false, 
216
            "manual_order": {
217
              "data": [
218
                "eservices:environnement-proprete:IWS-enlevement-dechets-verts", 
219
                "eservices:environnement-proprete:demande-encombrants-IWS", 
220
                "eservices:environnement-proprete:signalement-domaine-public", 
221
                "eservices:environnement-proprete:demande-de-composteur-en-pied-d-immeuble", 
222
                "eservices:environnement-proprete:demande-de-composteur-en-structures-educatives"
223
              ]
224
            }, 
225
            "last_update_timestamp": "2019-06-04T12:18:07.695Z", 
226
            "category_reference": "eservices:environnement-proprete", 
227
            "slug": "", 
228
            "ordering": "manual", 
229
            "limit": null, 
230
            "groups": [], 
231
            "order": 5, 
232
            "placeholder": "particuliers", 
233
            "public": true
234
          }
235
        }, 
236
        {
237
          "model": "wcs.wcsformsofcategorycell", 
238
          "fields": {
239
            "extra_css_class": "", 
240
            "restricted_to_unlogged": false, 
241
            "manual_order": {
242
              "data": []
243
            }, 
244
            "last_update_timestamp": "2019-06-04T12:18:07.751Z", 
245
            "category_reference": "eservices:stationnement", 
246
            "slug": "", 
247
            "ordering": "alpha", 
248
            "limit": null, 
249
            "groups": [], 
250
            "order": 6, 
251
            "placeholder": "particuliers", 
252
            "public": true
253
          }
254
        }, 
255
        {
256
          "model": "wcs.wcsformsofcategorycell", 
257
          "fields": {
258
            "extra_css_class": "", 
259
            "restricted_to_unlogged": false, 
260
            "manual_order": {
261
              "data": []
262
            }, 
263
            "last_update_timestamp": "2019-06-04T12:18:07.801Z", 
264
            "category_reference": "eservices:risques-majeurs", 
265
            "slug": "", 
266
            "ordering": "alpha", 
267
            "limit": null, 
268
            "groups": [], 
269
            "order": 7, 
270
            "placeholder": "particuliers", 
271
            "public": true
272
          }
273
        }, 
274
        {
275
          "model": "wcs.wcsformsofcategorycell", 
276
          "fields": {
277
            "extra_css_class": "", 
278
            "restricted_to_unlogged": false, 
279
            "manual_order": {
280
              "data": []
281
            }, 
282
            "last_update_timestamp": "2019-06-04T12:18:07.849Z", 
283
            "category_reference": "eservices:enseignement", 
284
            "slug": "", 
285
            "ordering": "alpha", 
286
            "limit": null, 
287
            "groups": [], 
288
            "order": 8, 
289
            "placeholder": "particuliers", 
290
            "public": true
291
          }
292
        }, 
293
        {
294
          "model": "wcs.wcsformsofcategorycell", 
295
          "fields": {
296
            "extra_css_class": "", 
297
            "restricted_to_unlogged": false, 
298
            "manual_order": {
299
              "data": []
300
            }, 
301
            "last_update_timestamp": "2019-06-04T12:18:07.898Z", 
302
            "category_reference": "eservices:loisirs", 
303
            "slug": "", 
304
            "ordering": "alpha", 
305
            "limit": null, 
306
            "groups": [], 
307
            "order": 9, 
308
            "placeholder": "particuliers", 
309
            "public": true
310
          }
311
        }, 
312
        {
313
          "model": "wcs.wcsformsofcategorycell", 
314
          "fields": {
315
            "extra_css_class": "", 
316
            "restricted_to_unlogged": false, 
317
            "manual_order": {
318
              "data": [
319
                "eservices:polices-speciale-et-voirie:dpark-demande-abonnement-copie", 
320
                "eservices:polices-speciale-et-voirie:declaration-d-abonnement-resident", 
321
                "eservices:polices-speciale-et-voirie:dpark-renouvellement-abonnement", 
322
                "eservices:polices-speciale-et-voirie:dpark-ne-plus-suivre-mon-dossier-en-ligne-desappairage", 
323
                "eservices:polices-speciale-et-voirie:demande-d-acces-a-la-zone-reservee-du-centre-ville-des-allees-jules-guesde-paul-feuga", 
324
                "eservices:polices-speciale-et-voirie:inscription-appels-en-masse"
325
              ]
326
            }, 
327
            "last_update_timestamp": "2019-06-04T12:18:07.951Z", 
328
            "category_reference": "eservices:polices-speciale-et-voirie", 
329
            "slug": "", 
330
            "ordering": "manual", 
331
            "limit": null, 
332
            "groups": [], 
333
            "order": 10, 
334
            "placeholder": "particuliers", 
335
            "public": true
336
          }
337
        }, 
338
        {
339
          "model": "data.linkcell", 
340
          "fields": {
341
            "extra_css_class": "wcsformcell", 
342
            "restricted_to_unlogged": false, 
343
            "link_page": null, 
344
            "title": "Demande de subvention", 
345
            "last_update_timestamp": "2019-01-14T16:01:41.160Z", 
346
            "slug": "", 
347
            "url": "https://montoulouse.fr/demarche/sfjsp?interviewID=eSubvention", 
348
            "groups": [], 
349
            "anchor": "", 
350
            "order": 11, 
351
            "placeholder": "associations", 
352
            "public": true
353
          }
354
        }, 
355
        {
356
          "model": "data.linkcell", 
357
          "fields": {
358
            "extra_css_class": "wcsformcell", 
359
            "restricted_to_unlogged": false, 
360
            "link_page": null, 
361
            "title": "Demande de r\u00e9servation de salle", 
362
            "last_update_timestamp": "2019-01-14T16:01:41.279Z", 
363
            "slug": "", 
364
            "url": "https://montoulouse.fr/demarche/sfjsp?interviewID=ReservationSalle", 
365
            "groups": [], 
366
            "anchor": "", 
367
            "order": 12, 
368
            "placeholder": "associations", 
369
            "public": true
370
          }
371
        }, 
372
        {
373
          "model": "data.linkcell", 
374
          "fields": {
375
            "extra_css_class": "wcsformcell", 
376
            "restricted_to_unlogged": false, 
377
            "link_page": null, 
378
            "title": "March\u00e9s publics", 
379
            "last_update_timestamp": "2019-01-14T16:01:41.404Z", 
380
            "slug": "", 
381
            "url": "https://www.marchespublics.toulouse-metropole.fr", 
382
            "groups": [], 
383
            "anchor": "", 
384
            "order": 13, 
385
            "placeholder": "professionnels", 
386
            "public": true
387
          }
388
        }, 
389
        {
390
          "model": "data.linkcell", 
391
          "fields": {
392
            "extra_css_class": "wcsformcell", 
393
            "restricted_to_unlogged": false, 
394
            "link_page": null, 
395
            "title": "Appels \u00e0 projets", 
396
            "last_update_timestamp": "2019-01-14T16:01:41.511Z", 
397
            "slug": "", 
398
            "url": "https://www.toulouse.fr/web/entreprises-partenaires/appels-a-projets", 
399
            "groups": [], 
400
            "anchor": "", 
401
            "order": 14, 
402
            "placeholder": "professionnels", 
403
            "public": true
404
          }
405
        }, 
406
        {
407
          "model": "data.linkcell", 
408
          "fields": {
409
            "extra_css_class": "wcsformcell", 
410
            "restricted_to_unlogged": false, 
411
            "link_page": null, 
412
            "title": "Occupation du domaine public", 
413
            "last_update_timestamp": "2019-01-14T16:01:41.609Z", 
414
            "slug": "", 
415
            "url": "https://www.toulouse.fr/web/demarches/occupation-du-domaine-public", 
416
            "groups": [], 
417
            "anchor": "", 
418
            "order": 15, 
419
            "placeholder": "professionnels", 
420
            "public": true
421
          }
422
        }, 
423
        {
424
          "model": "wcs.wcsformcell", 
425
          "fields": {
426
            "extra_css_class": "", 
427
            "restricted_to_unlogged": false, 
428
            "last_update_timestamp": "2019-06-04T12:18:08.001Z", 
429
            "formdef_reference": "eservices:demande-d-acces-a-la-zone-reservee-du-centre-ville-des-allees-jules-guesde-paul-feuga", 
430
            "slug": "", 
431
            "groups": [], 
432
            "order": 20, 
433
            "placeholder": "professionnels", 
434
            "public": true
435
          }
436
        }, 
437
        {
438
          "model": "wcs.wcsformsofcategorycell", 
439
          "fields": {
440
            "extra_css_class": "", 
441
            "restricted_to_unlogged": false, 
442
            "manual_order": {
443
              "data": []
444
            }, 
445
            "last_update_timestamp": "2019-06-04T12:18:08.050Z", 
446
            "category_reference": "eservices:proprietaires", 
447
            "slug": "", 
448
            "ordering": "alpha", 
449
            "limit": null, 
450
            "groups": [], 
451
            "order": 21, 
452
            "placeholder": "particuliers", 
453
            "public": true
454
          }
455
        }, 
456
        {
457
          "model": "data.linkcell", 
458
          "fields": {
459
            "extra_css_class": "wcsformcell", 
460
            "restricted_to_unlogged": false, 
461
            "link_page": null, 
462
            "title": "Taxe de s\u00e9jour", 
463
            "last_update_timestamp": "2019-01-14T16:01:42.537Z", 
464
            "slug": "", 
465
            "url": "https://taxedesejour.toulouse-metropole.fr/ ", 
466
            "groups": [], 
467
            "anchor": "", 
468
            "order": 22, 
469
            "placeholder": "professionnels", 
470
            "public": true
471
          }
472
        }, 
473
        {
474
          "model": "wcs.wcsformcell", 
475
          "fields": {
476
            "extra_css_class": "grid-1-3", 
477
            "restricted_to_unlogged": false, 
478
            "last_update_timestamp": "2019-06-04T12:18:08.104Z", 
479
            "formdef_reference": "eservices:collecte-des-poubelles", 
480
            "slug": "tile", 
481
            "groups": [], 
482
            "order": 23, 
483
            "placeholder": "content", 
484
            "public": true
485
          }
486
        }, 
487
        {
488
          "model": "wcs.wcsformcell", 
489
          "fields": {
490
            "extra_css_class": "grid-1-3", 
491
            "restricted_to_unlogged": false, 
492
            "last_update_timestamp": "2019-06-04T12:18:08.147Z", 
493
            "formdef_reference": "eservices:dechets-et-proprete", 
494
            "slug": "tile", 
495
            "groups": [], 
496
            "order": 24, 
497
            "placeholder": "content", 
498
            "public": true
499
          }
500
        }, 
501
        {
502
          "model": "wcs.wcsformcell", 
503
          "fields": {
504
            "extra_css_class": "newline grid-1-3", 
505
            "restricted_to_unlogged": false, 
506
            "last_update_timestamp": "2019-06-04T12:18:08.198Z", 
507
            "formdef_reference": "eservices:eau-assainissement", 
508
            "slug": "tile", 
509
            "groups": [], 
510
            "order": 25, 
511
            "placeholder": "content", 
512
            "public": true
513
          }
514
        }, 
515
        {
516
          "model": "wcs.wcsformcell", 
517
          "fields": {
518
            "extra_css_class": "grid-1-3", 
519
            "restricted_to_unlogged": false, 
520
            "last_update_timestamp": "2019-06-04T12:18:08.252Z", 
521
            "formdef_reference": "eservices:nuisances-olfactives", 
522
            "slug": "tile", 
523
            "groups": [], 
524
            "order": 26, 
525
            "placeholder": "content", 
526
            "public": true
527
          }
528
        }, 
529
        {
530
          "model": "wcs.wcsformcell", 
531
          "fields": {
532
            "extra_css_class": "grid-1-3", 
533
            "restricted_to_unlogged": false, 
534
            "last_update_timestamp": "2019-06-04T12:18:08.308Z", 
535
            "formdef_reference": "eservices:tranquillite-publique", 
536
            "slug": "tile", 
537
            "groups": [], 
538
            "order": 27, 
539
            "placeholder": "content", 
540
            "public": true
541
          }
542
        }, 
543
        {
544
          "model": "wcs.wcsformcell", 
545
          "fields": {
546
            "extra_css_class": "newline grid-1-3", 
547
            "restricted_to_unlogged": false, 
548
            "last_update_timestamp": "2019-06-04T12:18:08.430Z", 
549
            "formdef_reference": "eservices:voirie-et-signalisation", 
550
            "slug": "tile", 
551
            "groups": [], 
552
            "order": 28, 
553
            "placeholder": "content", 
554
            "public": true
555
          }
556
        }, 
557
        {
558
          "model": "wcs.wcsformcell", 
559
          "fields": {
560
            "extra_css_class": "grid-1-3", 
561
            "restricted_to_unlogged": false, 
562
            "last_update_timestamp": "2019-06-04T12:18:08.479Z", 
563
            "formdef_reference": "eservices:eclairage-public", 
564
            "slug": "tile", 
565
            "groups": [], 
566
            "order": 29, 
567
            "placeholder": "content", 
568
            "public": true
569
          }
570
        }
571
      ]
572
    }, 
573
    {
574
      "fields": {
575
        "sub_slug": "", 
576
        "picture": "", 
577
        "description": "", 
578
        "parent": null, 
579
        "title": "Mon compte", 
580
        "last_update_timestamp": "2019-01-15T07:44:21.092Z", 
581
        "template_name": "standard", 
582
        "order": 2, 
583
        "public": false, 
584
        "snapshot": null, 
585
        "redirect_url": "https://connexion-matrice.signalpublik.com/accounts/", 
586
        "groups": [], 
587
        "slug": "mon-compte", 
588
        "exclude_from_navigation": false
589
      }, 
590
      "cells": [
591
        {
592
          "model": "data.parentcontentcell", 
593
          "fields": {
594
            "extra_css_class": "", 
595
            "restricted_to_unlogged": false, 
596
            "last_update_timestamp": "2019-01-15T07:33:19.450Z", 
597
            "slug": "", 
598
            "groups": [], 
599
            "order": 0, 
600
            "placeholder": "footer", 
601
            "public": true
602
          }
603
        }
604
      ]
605
    }, 
606
    {
607
      "fields": {
608
        "sub_slug": "", 
609
        "picture": "", 
610
        "description": "", 
611
        "parent": null, 
612
        "title": "Mes demandes", 
613
        "last_update_timestamp": "2019-01-15T07:44:27.360Z", 
614
        "template_name": "standard", 
615
        "order": 3, 
616
        "public": false, 
617
        "snapshot": null, 
618
        "redirect_url": "", 
619
        "groups": [], 
620
        "slug": "mes-demandes", 
621
        "exclude_from_navigation": false
622
      }, 
623
      "cells": [
624
        {
625
          "model": "wcs.wcscurrentformscell", 
626
          "fields": {
627
            "extra_css_class": "", 
628
            "restricted_to_unlogged": false, 
629
            "groups": [], 
630
            "current_forms": true, 
631
            "last_update_timestamp": "2019-01-15T07:36:11.844Z", 
632
            "wcs_site": "", 
633
            "slug": "", 
634
            "done_forms": false, 
635
            "order": 0, 
636
            "placeholder": "content", 
637
            "public": true, 
638
            "categories": {
639
              "data": []
640
            }
641
          }
642
        }, 
643
        {
644
          "model": "wcs.wcscurrentdraftscell", 
645
          "fields": {
646
            "extra_css_class": "", 
647
            "restricted_to_unlogged": false, 
648
            "last_update_timestamp": "2019-01-15T07:36:11.898Z", 
649
            "wcs_site": "", 
650
            "slug": "", 
651
            "groups": [], 
652
            "order": 1, 
653
            "placeholder": "content", 
654
            "public": true
655
          }
656
        }, 
657
        {
658
          "model": "wcs.wcscurrentformscell", 
659
          "fields": {
660
            "extra_css_class": "", 
661
            "restricted_to_unlogged": false, 
662
            "groups": [], 
663
            "current_forms": false, 
664
            "last_update_timestamp": "2019-01-15T07:35:57.813Z", 
665
            "wcs_site": "", 
666
            "slug": "", 
667
            "done_forms": true, 
668
            "order": 2, 
669
            "placeholder": "content", 
670
            "public": true, 
671
            "categories": {
672
              "data": []
673
            }
674
          }
675
        }, 
676
        {
677
          "model": "data.parentcontentcell", 
678
          "fields": {
679
            "extra_css_class": "", 
680
            "restricted_to_unlogged": false, 
681
            "last_update_timestamp": "2019-01-15T07:36:11.786Z", 
682
            "slug": "", 
683
            "groups": [], 
684
            "order": 3, 
685
            "placeholder": "footer", 
686
            "public": true
687
          }
688
        }
689
      ]
690
    }, 
691
    {
692
      "fields": {
693
        "sub_slug": "", 
694
        "picture": "", 
695
        "description": "", 
696
        "parent": null, 
697
        "title": "Mes notifications", 
698
        "last_update_timestamp": "2019-01-15T07:44:33.459Z", 
699
        "template_name": "standard", 
700
        "order": 4, 
701
        "public": false, 
702
        "snapshot": null, 
703
        "redirect_url": "", 
704
        "groups": [], 
705
        "slug": "mes-notifications", 
706
        "exclude_from_navigation": false
707
      }, 
708
      "cells": [
709
        {
710
          "model": "data.parentcontentcell", 
711
          "fields": {
712
            "extra_css_class": "", 
713
            "restricted_to_unlogged": false, 
714
            "last_update_timestamp": "2019-01-15T07:33:49.817Z", 
715
            "slug": "", 
716
            "groups": [], 
717
            "order": 0, 
718
            "placeholder": "footer", 
719
            "public": true
720
          }
721
        }, 
722
        {
723
          "model": "notifications.notificationscell", 
724
          "fields": {
725
            "extra_css_class": "", 
726
            "restricted_to_unlogged": false, 
727
            "last_update_timestamp": "2019-01-15T07:43:26.608Z", 
728
            "slug": "", 
729
            "groups": [], 
730
            "order": 1, 
731
            "placeholder": "content", 
732
            "public": true
733
          }
734
        }
735
      ]
736
    }, 
737
    {
738
      "fields": {
739
        "sub_slug": "", 
740
        "picture": "", 
741
        "description": "", 
742
        "parent": null, 
743
        "title": "Conditions g\u00e9n\u00e9rales d'utilisation", 
744
        "last_update_timestamp": "2019-01-15T07:34:30.447Z", 
745
        "template_name": "standard", 
746
        "order": 5, 
747
        "public": true, 
748
        "snapshot": null, 
749
        "redirect_url": "", 
750
        "groups": [], 
751
        "slug": "conditions-generales-dutilisation", 
752
        "exclude_from_navigation": true
753
      }, 
754
      "cells": [
755
        {
756
          "model": "data.parentcontentcell", 
757
          "fields": {
758
            "extra_css_class": "", 
759
            "restricted_to_unlogged": false, 
760
            "last_update_timestamp": "2019-01-14T16:01:45.898Z", 
761
            "slug": "", 
762
            "groups": [], 
763
            "order": 0, 
764
            "placeholder": "footer", 
765
            "public": true
766
          }
767
        }, 
768
        {
769
          "model": "data.textcell", 
770
          "fields": {
771
            "extra_css_class": "", 
772
            "restricted_to_unlogged": false, 
773
            "last_update_timestamp": "2019-01-15T07:09:38.720Z", 
774
            "text": "<h1>Conditions g&eacute;n&eacute;rales d&#39;utilisation</h1>", 
775
            "slug": "", 
776
            "groups": [], 
777
            "order": 1, 
778
            "placeholder": "content", 
779
            "public": true
780
          }
781
        }
782
      ]
783
    }, 
784
    {
785
      "fields": {
786
        "sub_slug": "", 
787
        "picture": "", 
788
        "description": "", 
789
        "parent": null, 
790
        "title": "Mentions l\u00e9gales", 
791
        "last_update_timestamp": "2019-01-15T10:33:38.328Z", 
792
        "template_name": "standard", 
793
        "order": 6, 
794
        "public": true, 
795
        "snapshot": null, 
796
        "redirect_url": "{{mention_legales_url}}", 
797
        "groups": [], 
798
        "slug": "mentions-legales", 
799
        "exclude_from_navigation": true
800
      }, 
801
      "cells": [
802
        {
803
          "model": "data.parentcontentcell", 
804
          "fields": {
805
            "extra_css_class": "", 
806
            "restricted_to_unlogged": false, 
807
            "last_update_timestamp": "2019-01-14T16:01:46.168Z", 
808
            "slug": "", 
809
            "groups": [], 
810
            "order": 0, 
811
            "placeholder": "footer", 
812
            "public": true
813
          }
814
        }
815
      ]
816
    }, 
817
    {
818
      "fields": {
819
        "sub_slug": "", 
820
        "picture": "", 
821
        "description": "", 
822
        "parent": null, 
823
        "title": "Hors ligne", 
824
        "last_update_timestamp": "2019-01-15T07:34:30.459Z", 
825
        "template_name": "standard", 
826
        "order": 7, 
827
        "public": true, 
828
        "snapshot": null, 
829
        "redirect_url": "", 
830
        "groups": [], 
831
        "slug": "offline", 
832
        "exclude_from_navigation": true
833
      }, 
834
      "cells": [
835
        {
836
          "model": "data.parentcontentcell", 
837
          "fields": {
838
            "extra_css_class": "", 
839
            "restricted_to_unlogged": false, 
840
            "last_update_timestamp": "2019-01-14T16:01:49.384Z", 
841
            "slug": "", 
842
            "groups": [], 
843
            "order": 0, 
844
            "placeholder": "footer", 
845
            "public": true
846
          }
847
        }, 
848
        {
849
          "model": "data.textcell", 
850
          "fields": {
851
            "extra_css_class": "", 
852
            "restricted_to_unlogged": false, 
853
            "last_update_timestamp": "2019-01-14T16:01:49.493Z", 
854
            "text": "<h1>Vous n&#39;avez pas de connexion r&eacute;seau.</h1>\r\n", 
855
            "slug": "title-section", 
856
            "groups": [], 
857
            "order": 1, 
858
            "placeholder": "content", 
859
            "public": true
860
          }
861
        }, 
862
        {
863
          "model": "data.textcell", 
864
          "fields": {
865
            "extra_css_class": "", 
866
            "restricted_to_unlogged": false, 
867
            "last_update_timestamp": "2019-01-14T16:01:49.597Z", 
868
            "text": "<p><a class=\"pk-button\" href=\"/\">R&eacute;essayer</a></p>\r\n", 
869
            "slug": "", 
870
            "groups": [], 
871
            "order": 2, 
872
            "placeholder": "content", 
873
            "public": true
874
          }
875
        }
876
      ]
877
    }
878
  ], 
879
  "assets": [
880
    {
881
      "fields": {
882
        "asset": "assets/part-stationnement.png", 
883
        "key": "wcs:category:picto:eservices:dpark"
884
      }
885
    }, 
886
    {
887
      "fields": {
888
        "asset": "assets/part-etat-civil.png", 
889
        "key": "wcs:category:picto-hover:eservices:etat-civil"
890
      }
891
    }, 
892
    {
893
      "fields": {
894
        "asset": "assets/part-risques.png", 
895
        "key": "wcs:category:picto:eservices:polices-speciale-et-voirie"
896
      }
897
    }, 
898
    {
899
      "fields": {
900
        "asset": "assets/part-enseignement.png", 
901
        "key": "wcs:category:picto:eservices:allo-toulouse"
902
      }
903
    }, 
904
    {
905
      "fields": {
906
        "asset": "assets/part-loisirs.png", 
907
        "key": "wcs:category:picto:eservices:prestations-scolaires-et-periscolaires-activites-sportives-et-socioculturelles"
908
      }
909
    }, 
910
    {
911
      "fields": {
912
        "asset": "assets/pictogramme-dechets-sacs.png", 
913
        "key": "picto:dechets-sacs"
914
      }
915
    }, 
916
    {
917
      "fields": {
918
        "asset": "assets/pictogramme-dechets-fagots_u7jWPAj.png", 
919
        "key": "picto:dechets-fagots"
920
      }
921
    }, 
922
    {
923
      "fields": {
924
        "asset": "assets/pictogramme-encombrants-armoire-commode.png", 
925
        "key": "picto:encombrants-armoire-commode"
926
      }
927
    }, 
928
    {
929
      "fields": {
930
        "asset": "assets/pictogramme-encombrants-aspirateur.png", 
931
        "key": "picto:encombrants-aspirateur"
932
      }
933
    }, 
934
    {
935
      "fields": {
936
        "asset": "assets/pictogramme-encombrants-canape.png", 
937
        "key": "picto:encombrants-canape"
938
      }
939
    }, 
940
    {
941
      "fields": {
942
        "asset": "assets/pictogramme-encombrants-chaise.png", 
943
        "key": "picto:encombrants-chaise"
944
      }
945
    }, 
946
    {
947
      "fields": {
948
        "asset": "assets/pictogramme-encombrants-cuisiniere.png", 
949
        "key": "picto:encombrants-cuisiniere"
950
      }
951
    }, 
952
    {
953
      "fields": {
954
        "asset": "assets/pictogramme-encombrants-lave_vaisselle-four.png", 
955
        "key": "picto:encombrants-lave-vaisselle-four"
956
      }
957
    }, 
958
    {
959
      "fields": {
960
        "asset": "assets/pictogramme-encombrants-machine-a-laver.png", 
961
        "key": "picto:encombrants-machine-a-laver"
962
      }
963
    }, 
964
    {
965
      "fields": {
966
        "asset": "assets/pictogramme-encombrants-matela-sommier.png", 
967
        "key": "picto:encombrants-matelas-sommier"
968
      }
969
    }, 
970
    {
971
      "fields": {
972
        "asset": "assets/pictogramme-encombrants-ordinateur-tele.png", 
973
        "key": "picto:encombrants-ordinateur-tele"
974
      }
975
    }, 
976
    {
977
      "fields": {
978
        "asset": "assets/pictogramme-encombrants-refrigirateur.png", 
979
        "key": "picto:encombrants-refrigerateur"
980
      }
981
    }, 
982
    {
983
      "fields": {
984
        "asset": "assets/pictogramme-encombrants-refrigirateur-americain.png", 
985
        "key": "picto:encombrants-refrigerateur-americain"
986
      }
987
    }, 
988
    {
989
      "fields": {
990
        "asset": "assets/pictogramme-encombrants-etageres-table.png", 
991
        "key": "picto:encombrants-etagere-table"
992
      }
993
    }
994
  ]
995
}
roles/deploy-signal-tenants/vars/main.yml
1
wcs_dev_template_path: /tmp/cook-recipe-signal.json
2
wcs_skeleton_filename: publik.zip
3
wcs_error_email: ""
4
wcs_language: "fr"
5
wcs_postgres_user: ""
6
wcs_postgres_host: ""
7
wcs_postgres_database: "postgres"
0
-