Skip to content
This repository has been archived by the owner on Nov 2, 2023. It is now read-only.

Cascading select generator #162

Closed
4 tasks done
issa-tseng opened this issue Jun 12, 2017 · 1 comment
Closed
4 tasks done

Cascading select generator #162

issa-tseng opened this issue Jun 12, 2017 · 1 comment
Milestone

Comments

@issa-tseng
Copy link
Member

issa-tseng commented Jun 12, 2017

Emulate XLSForms' support for cascading selects. Breakdown:

  • Provide an interface to input options in a format similar to XLSForm.
  • Generate the appropriate XML output based on this format.
  • Generate the appropriate XLS output based on this format.
  • Figure out how best to map the cascade across multiple questions in the drag and drop UI. Might look similar to the successor question UI.
@issa-tseng issa-tseng added this to the 0.3.3 milestone Jun 12, 2017
@issa-tseng
Copy link
Member Author

In the 0.3.3 milestone for now, but will fall out if it ends up being too-long a pole to make our ship date.

issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 20, 2017
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 23, 2017
… editor.

* only allows append-at-bottom or full-replace; doesn’t currently try to
  infer action from currently highlighted cell (unclear what expected
  behaviour would be.)
* special case for IE (have not yet tested as of commit time).
  * including custom TSV parsing (fully tested; should unit test though)
* fix minor bug where grid width was determined by pasted data rather
  than original headers (so pasting too many or too few columns would
  break it).
* reject all blank rows, so if eg someone pastes a header row and wants
  it gone they can just blank out the rows and it’ll vanish eventually.
* add a hint at the bottom of the bulk edit dialog about all this.
* massage options preset text ever so slightly.
* UX sins on top of UI programming sins on top of turtles on top of..
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 23, 2017
* checking/unchecking cascade adds/removes a slave control.
* slave controls have no type icon or explicit delete button.
* if follow-up question is enabled at the moment cascade is selected,
  uncheck it and disallow selection (only valid for childmost cascade).
* rechecking cascade will restore all cascaded objects (in case of
  accidental deactivation).
  * works with validation.

* next: drag+drop as one unit.
* then: options editors (2) parent-level tracking.
* finally: export logic.
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 23, 2017
* on one end, don’t allow dragstart to not encompass a whole group.
* on the other end, don’t allow drop to ever target the middle of a
  group.

* bonus next item: also need to ensure save/load roundtrip of cascade
  status.
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 23, 2017
…ize.

* also adds a generic metadata bag to each control so we can finally
  save non-user information away.
* and then uses that metadata bag to record whether the control is a
  slave.
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 24, 2017
…cades.

* can edit matching values for all cascade parents.
* label updates if parent data name is updated.
* save/load works.
* old data should not matter, as it’s not possible to transmute a non-
  cascade select_one into a cascade select_one.
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 24, 2017
…cades.

* can edit matching values for all cascade parents.
* label updates if parent data name is updated.
* save/load works.
* old data should not matter, as it’s not possible to transmute a non-
  cascade select_one into a cascade select_one.
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 24, 2017
…cades.

* can edit matching values for all cascade parents.
* label updates if parent data name is updated.
* save/load works.
* old data should not matter, as it’s not possible to transmute a non-
  cascade select_one into a cascade select_one.
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 24, 2017
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 24, 2017
… editor.

* only allows append-at-bottom or full-replace; doesn’t currently try to
  infer action from currently highlighted cell (unclear what expected
  behaviour would be.)
* special case for IE (have not yet tested as of commit time).
  * including custom TSV parsing (fully tested; should unit test though)
* fix minor bug where grid width was determined by pasted data rather
  than original headers (so pasting too many or too few columns would
  break it).
* reject all blank rows, so if eg someone pastes a header row and wants
  it gone they can just blank out the rows and it’ll vanish eventually.
* add a hint at the bottom of the bulk edit dialog about all this.
* massage options preset text ever so slightly.
* UX sins on top of UI programming sins on top of turtles on top of..
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 24, 2017
* checking/unchecking cascade adds/removes a slave control.
* slave controls have no type icon or explicit delete button.
* if follow-up question is enabled at the moment cascade is selected,
  uncheck it and disallow selection (only valid for childmost cascade).
* rechecking cascade will restore all cascaded objects (in case of
  accidental deactivation).
  * works with validation.

* next: drag+drop as one unit.
* then: options editors (2) parent-level tracking.
* finally: export logic.
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 24, 2017
* on one end, don’t allow dragstart to not encompass a whole group.
* on the other end, don’t allow drop to ever target the middle of a
  group.

* bonus next item: also need to ensure save/load roundtrip of cascade
  status.
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 24, 2017
…ize.

* also adds a generic metadata bag to each control so we can finally
  save non-user information away.
* and then uses that metadata bag to record whether the control is a
  slave.
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 24, 2017
…cades.

* can edit matching values for all cascade parents.
* label updates if parent data name is updated.
* save/load works.
* old data should not matter, as it’s not possible to transmute a non-
  cascade select_one into a cascade select_one.
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 24, 2017
…s now.

* wtf is this options modal "api", is this asm? holy wow.

* all that’s left is data out.
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 24, 2017
* i followed the xlsform output style rather than the nested style
  suggested on odk.org, as it seemed cleaner.
* only xls output remains for this ticket.
issa-tseng added a commit to issa-tseng/build2xlsform that referenced this issue Jul 24, 2017
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 25, 2017
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 26, 2017
issa-tseng added a commit to issa-tseng/odkbuild that referenced this issue Jul 26, 2017
lognaturel added a commit that referenced this issue Jul 27, 2017
data/bug #162: incomplete cascade data would crash on xml export.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant