Project

General

Profile

Feature #3881

Variables: Ex 'keySemId', New 'periodId' (System Store)

Added by Carsten Rose over 3 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Start date:
08.06.2017
Due date:
% Done:

0%

Estimated time:
Discuss:

Description

  • Name of table 'schedule' in 'config.qfq.ini'. E.g.: 'semester', 'schoolYear', ...
  • dynamic per page: switching on page '1' does not affect page '2'.
  • static per User: if a user switches to next semester, all of 'static semester configured pages' select the choosen semester.
  • mode 'per page' | 'static' might be a user setting option or might be a webmaster configuration decision.
Implementation:
  • in qfq record botytext: scheduleId = ...
  • scheduleId = dynamic | staticPerUser | <const> | {{...}}
  • default: dynamic
  • first request to 'scheduleId':
    • if there is a 'scheduleId' in SIP and {{scheduleId:T}}='staticPerUser', set new value in QFQ session.
    • dynamic: check table schedule, replace 'dynamic' by computed id.
    • staticPerUser: get value from QFQ session. If not exist, get computed id. save new id in QFQ session
    • numerical: return value.

Related issues

Related to QFQ - Bug #4158: Delete Button im Form fehlen die SIP Parameter - aufgefallen weil periodId nicht durchgereicht wurdeClosed2017-08-02

Associated revisions

Revision 48f5a302 (diff)
Added by Carsten Rose about 3 years ago

Feature #3881 / Variables: Ex 'keySemId', New 'periodId' (System Store)
Manual.rst: Doc update for periodId.
DatabaseUpdateData.php, formEditor.sql: Table 'Period' and sample record.
Store.php: Implement systemStoreUpdate()
QuickFormQuery.php: call to store->systemStoreUpdate() - might solved in a better way..

History

#1 Updated by Carsten Rose over 3 years ago

  • Description updated (diff)

#2 Updated by Carsten Rose about 3 years ago

  • Subject changed from Variables: Ex 'keySemId', New '_scheduleId' (System Store) to Variables: Ex 'keySemId', New 'periodId' (System Store)
  • Status changed from New to In Progress
  • Assignee set to Carsten Rose
  • '_scheduleId' is renamed to 'period'.
  • persistant storage is not implemented at the moment. will be done via STORE_SESSION (N) - this store will be newly implemented.

#3 Updated by Carsten Rose about 3 years ago

  • Related to Bug #4158: Delete Button im Form fehlen die SIP Parameter - aufgefallen weil periodId nicht durchgereicht wurde added

#4 Updated by Carsten Rose about 3 years ago

Der obige Ansatz wurde anders implementiert:

  • Die Anweisung fuer die Berechnung steht in der config.qfq.ini: VAR_ADD_BY_SQL=SELECT id AS periodId FROM Period WHERE start<=NOW ORDER BY start DESC LIMIT 1
  • Die SQL Spaltennamen sind die Variablennamen. Es koennen beliebige Variablen via den Spaltenamen gesetzt werden.
  • Es koennen auch bestehende Variablen uberschrieben werden.
  • Wird ausgefuehrt, nachdem config, store und db inititalisiert wurden.
  • Zugriff
    • volatile: {{periodId:SY0}}
    • persistent: {{periodId:SN0}}
      • nur auf Seiten die 'Persistant' benötigen wird eine neue periodId in die Session geschrieben. Dies muss in einem QFQ Report Record erfolgen.
      • Aktuell ist der Session Store noch nicht implementiert
  • In Forms sollte als scheduleId immer der aktuelle Wert genommen werden, und nciht eine die durch den user in einem anderen tab gesetzt wurde
  • Mehrere tabs, mit unterschiedlichen persistent periodId ueberschreiben sich gegenseitig - das Problem wird aktuell ignoriert.

#5 Updated by Carsten Rose about 3 years ago

  • Target version set to next4

#7 Updated by Carsten Rose about 3 years ago

  • Status changed from In Progress to Closed

#8 Updated by Carsten Rose over 2 years ago

  • Target version changed from next4 to 0.25.6

Also available in: Atom PDF