formdata: add an page_id attribute (#85091) #1036
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/85091-draft-internal-identifier"
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?
737fcba866
to84bd6649f6
84bd6649f6
tod8535bed40
12029fc2cc
to368c07b8fb
368c07b8fb
to650c6328c3
650c6328c3
to78ae5d0f18
Par dessus https://dev.entrouvert.org/issues/85940.
Rien de particulier à mon sens.
WIP: formdata: add an page_id attribute (#85091)to formdata: add an page_id attribute (#85091)@ -2437,2 +2437,4 @@
def test_migration_99_formdata_page_id(pub):
# prout
Nope.
Oups, je fais ça tout le temps pour pouvoir retrouver le code que je touche plus facilement, ménage fait.
78ae5d0f18
to8fbc88cee8
@ -2436,6 +2436,35 @@ def test_migration_86_card_uuid(pub):
cur.close()
def test_migration_99_formdata_page_id(pub):
Je suggérerais de ne pas mettre le numéro dans le nom du test, pour avoir un endroit de moins où ne pas avoir à le changer.
@ -2439,0 +2439,4 @@
def test_migration_99_formdata_page_id(pub):
FormDef.wipe()
formdef = FormDef()
formdef.name = 'tests migration 99'
Pareil ici.
@ -2439,0 +2453,4 @@
cur.execute('UPDATE wcs_meta SET value = 98 WHERE key = %s', ('sql_level',))
# drop uuid column
cur.execute('ALTER TABLE %s DROP COLUMN page_id' % sql.get_formdef_table_name(formdef))
Le commentaire sent le copié/collé, c'est la colonne page_id qui est retirée.
@ -2439,0 +2459,4 @@
sql.migrate()
assert column_exists_in_table(cur, sql.get_formdef_table_name(formdef), 'page_id')
assert migration_level(cur) >= 99
Il ne faudra pas oublier de modifier le numéro ici, par contre.
@ -1435,0 +1423,4 @@
try:
page = self.pages[page_no]
except IndexError:
page = None
Si ça a lieu ça serait utile d'avoir un commentaire pour expliquer les circonstances.
@ -1624,3 +1611,3 @@
return redirect(get_publisher().get_root_url())
def autosave_draft(self, draft_id, page_no, form_data, where=None):
def autosave_draft(self, draft_id, page_no, page, form_data, where=None):
Je ne pense pas intéressant de dupliquer l'information dans les paramètres; il me semble que tout le temps l'objet page peut être retrouvée via page_no,
self.pages[page_no]
, ça n'est pas le cas ?@ -1711,3 +1699,3 @@
return json.dumps({'result': 'success'})
def save_draft(self, data, page_no=None, where=None):
def save_draft(self, data, page_no=None, page=None, where=None):
Même commentaire que sur autosave_draft, je ne suis pas sûr de la nécessité du paramètre.
@ -1721,2 +1709,4 @@
if page_no is not None:
filled.page_no = page_no
if page is not None:
filled.page_id = page.id
Il semble me manquer un élément crucial par rapport à l'objectif, c'est l'information comme quoi on est sur la page de validation.
In fine pour reprendre plusieurs commentaires, je pense que ça pourrait être :
(code tapé ici sans vérifier, pour montrer l'idée)
et utiliser cette méthode pour remplir l'attribut page_id.
8fbc88cee8
to4cf9b418d0
4cf9b418d0
toae10758ae1
ae10758ae1
to6fa8b2c72e
6fa8b2c72e
to24ee1a3e3a
24ee1a3e3a
to201f194826
201f194826
toc32427109d
Voilà toutes les remarques prises en compte.
En plus de '_confirmation_page', j'introduis l'identifiant spécial '_first_page' pour la première page des formulaires qui n'ont pas de champ page.
Me reste juste cette interrogation.
@ -1601,0 +1606,4 @@
return self.pages[page_no].id
if self.has_confirmation_page():
return '_confirmation_page'
return None
Ça n'est pas évident pour moi la situation où on arrive à cette dernière ligne, j'aurais cru qu'on n'y arrivait jamais mais le coverage me détrompe (dans les nouveaux tests test_draft_store_page_id_no_confirmation et test_draft_store_page_id_when_no_page_and_no_confirmation passent par là).
Un commentaire pourrait être ajouté pour expliciter ?
Voilà.
c32427109d
tobfd099a950
bfd099a950
to5d21b253a9