plugin_event issueshttps://gitlab.in2p3.fr/tev/plugin_event/-/issues2019-12-05T19:23:40+01:00https://gitlab.in2p3.fr/tev/plugin_event/-/issues/31migrate to python3.72019-12-05T19:23:40+01:00LE GAC Renaudmigrate to python3.7* python 3.7
* web2py 2.18.3
* matplotlib 3.1.1
* pandas 0.25.2
* plugin_dbui 0.9.9.1-py37* python 3.7
* web2py 2.18.3
* matplotlib 3.1.1
* pandas 0.25.2
* plugin_dbui 0.9.9.1-py37https://gitlab.in2p3.fr/tev/plugin_event/-/issues/26Add a node to see sources content2018-05-18T05:04:28+02:00LE GAC RenaudAdd a node to see sources content* Node *sources* with the list of them
* Result in a ``PanelWithSelector``
* The selector is the one used for list or metric
* By default the identifier for meta data are hidden* Node *sources* with the list of them
* Result in a ``PanelWithSelector``
* The selector is the one used for list or metric
* By default the identifier for meta data are hiddenhttps://gitlab.in2p3.fr/tev/plugin_event/-/issues/24regression in 0.6.42018-05-18T05:04:28+02:00LE GAC Renaudregression in 0.6.4* Reset of the history filter is not always working !
* Configuration lists(2): edit an existing list and then create a new one. The field columns and features are not fill with default values but with the one load at the first time !
...* Reset of the history filter is not always working !
* Configuration lists(2): edit an existing list and then create a new one. The field columns and features are not fill with default values but with the one load at the first time !
* Default value is not working for field: "TextArea", "CheckBox", "AceEditor"https://gitlab.in2p3.fr/tev/plugin_event/-/issues/23improve history filter2018-05-18T05:04:28+02:00LE GAC Renaudimprove history filterAdd to the filter of the history table fields:
* `id`
* ComboBox to select `people`, type few letters and select within propositions
* ComboBox to select `object`, type few letters and select within propositionsAdd to the filter of the history table fields:
* `id`
* ComboBox to select `people`, type few letters and select within propositions
* ComboBox to select `object`, type few letters and select within propositionshttps://gitlab.in2p3.fr/tev/plugin_event/-/issues/22Redesign the report section2018-05-18T05:04:28+02:00LE GAC RenaudRedesign the report section* change the strategy:
- In the current implementation reports are based on a query from the database.
- It would be more general if reports are based on a `DataFrame`.
- The `DataFrame` can be filled with the content of a d...* change the strategy:
- In the current implementation reports are based on a query from the database.
- It would be more general if reports are based on a `DataFrame`.
- The `DataFrame` can be filled with the content of a database table including foreign fields or by a dedicated algorithm mixing, for example, different events.
* In the model register the source producing the `DataFrame`, a dictionary linking a name to a function.
* The report configuration should contains 6 sections
- Select the source
- Define selection criteria / query. It is based on a string written in natural language and on the `DataFrame.query` method.
- Transform the source using pandas chaining. It is a string interpreted using python `eval`, a general approach which should allow all kind of postprocessing.
- View defining the DataFrame columns which are shown in the Ext JS Grid, the grouping and the summary.
- Summary to customize summary row of the grid: per group, total, etc
- Permission to define roles with can used this report. Add a `JSON` field containing the list of role allowed to see the report
- ...
* In order to implement this approach:
- [ ] Remove dedicated selector.
- [x] Migrate general function from `lhcbfrance.modules.ana`: `active_period`, `coverage`, `db2df`, `full_name`, `get_people`,`is_end`, `is_start`, `normalize_history_data` to the module `report_tools`.
- [ ] Create the functions returning a DataFrame with the content of the history table
- [x] Create the functions / method in order to transforme a DataFrame into an Ext JS store, grid
- [ ] Modify the database schema to handle additional configuration parameters fo report
- [ ] Adapt the tools `List`, `Metric1D` and `Metric2D`.
- [ ] Adapt controllers.
- [ ] Update the documentation.
- ...
https://gitlab.in2p3.fr/tev/plugin_event/-/issues/21Fix the event identifier in the EvtSelector2018-05-18T05:04:28+02:00LE GAC RenaudFix the event identifier in the EvtSelector* In order to compute properly if a person start / end in the given period, the method `_active_period` have been introduce in the `EvtSelector` .
* The method determines the start (end) date(s) for person associated to an event, to a do...* In order to compute properly if a person start / end in the given period, the method `_active_period` have been introduce in the `EvtSelector` .
* The method determines the start (end) date(s) for person associated to an event, to a domain and to a team. The algorithm concatenate the different steps in which parameters like `fte` can change.
* In the current implementation the event identifier is force to `People`.
* This wrong since the selector can be applied to many different event. In addition, it should not depends on the application.
* In order to fix it, the event identifier has to be extract from the configuration of the list or metrics.
* One can imagine to modify the database schema for list and metric adding a field `id_event`https://gitlab.in2p3.fr/tev/plugin_event/-/issues/20refactorize the authentication2018-05-18T05:04:28+02:00LE GAC Renaudrefactorize the authentication* Migrate all the authentication business in a dedicated class (`models/auth.py`)
* Refactorize the models using only two files `_db_pro.py` and `db.py`
* The class should inherited from `Auth`
* In order to use Ext JS instead of JQuery ...* Migrate all the authentication business in a dedicated class (`models/auth.py`)
* Refactorize the models using only two files `_db_pro.py` and `db.py`
* The class should inherited from `Auth`
* In order to use Ext JS instead of JQuery the methods `login`, `register`, `change_password` have to be modified. Another approach is to transform the HTML form returns by the `login` method and to translate it into a Ext JS one (now working in the first try but more work might solve this)....https://gitlab.in2p3.fr/tev/plugin_event/-/issues/19Review the smart query2018-05-18T05:04:28+02:00LE GAC RenaudReview the smart query* Keep the smart query option building report, but they are many limitations: foreign key, handling history.data
* Add the possibility to write the query in python:
(db.events.event == "People) & (db.history.data.like...* Keep the smart query option building report, but they are many limitations: foreign key, handling history.data
* Add the possibility to write the query in python:
(db.events.event == "People) & (db.history.data.like("%cdd%")
* The last statement is translate using `eval`
* Check that the proposed string start with `db.xxx.yyy` with or without `(`https://gitlab.in2p3.fr/tev/plugin_event/-/issues/18Improve widgets to filter on data in selector2018-05-18T05:04:28+02:00LE GAC RenaudImprove widgets to filter on data in selector* Use the tool `Dbui.form.plugin.Mapper` in `Selector` uses by reports.
* Upgrade `TrackEvent.grid.HistoryFilter` by using Mapper`* Use the tool `Dbui.form.plugin.Mapper` in `Selector` uses by reports.
* Upgrade `TrackEvent.grid.HistoryFilter` by using Mapper`https://gitlab.in2p3.fr/tev/plugin_event/-/issues/17Improve the context menu of the history table2018-05-18T05:04:29+02:00LE GAC RenaudImprove the context menu of the history table* Revisit the context menu of the history table.
* It should contains the action `new` event, `split` event and `close` event.
* Keep the action `update`, `duplicate` and `destroy`.
* The action `split` is a wizard. It request the `e...* Revisit the context menu of the history table.
* It should contains the action `new` event, `split` event and `close` event.
* Keep the action `update`, `duplicate` and `destroy`.
* The action `split` is a wizard. It request the `end_date`. It closes the select event by the `end_date`, duplicate it with the `start_date` equal to `end_date` + 1 day and allow the user to update the other field.
* The action `close` event is also a wizard requesting only the `end_date`.https://gitlab.in2p3.fr/tev/plugin_event/-/issues/16Create the plugin_event2018-05-18T05:04:29+02:00LE GAC RenaudCreate the plugin_event* In order to create dedicated application like `track_lhcbfrance` migrate the core of the `track_events` application into the `plugin_events`. By doing this, dedicated application can have their own reports, scripts, *etc*.
* Migrate t...* In order to create dedicated application like `track_lhcbfrance` migrate the core of the `track_events` application into the `plugin_events`. By doing this, dedicated application can have their own reports, scripts, *etc*.
* Migrate the content of `models`, `modules`, `views` in `plugin_events`
* Add a layer to configure the plugin by selecting for examples database tables. In some case the user can instantiate only the table `history` while it will provide its own table `domains`, `people`, `object` with the current structure and additional field. In others cases, you are not interested by the table `lists`, `metric1D`, `metric2D` since the application provide only a set of pre-defined reports.
* A possible way of doing it, is to create a Class `EventModel`.
* ...https://gitlab.in2p3.fr/tev/plugin_event/-/issues/15Migrate to Ext JS 62018-05-18T05:04:29+02:00LE GAC RenaudMigrate to Ext JS 6https://gitlab.in2p3.fr/tev/plugin_event/-/issues/14Add the table domain2018-05-18T05:04:29+02:00LE GAC RenaudAdd the table domain* In the current version the field `domain` exists in the `teams` table.
* It is at a wrong place since we can have people in the same team working in different domain, *e.g* LAL covering both flavor physics and Heavy Ion.
* In order t...* In the current version the field `domain` exists in the `teams` table.
* It is at a wrong place since we can have people in the same team working in different domain, *e.g* LAL covering both flavor physics and Heavy Ion.
* In order to cover all cases, add the table `domains` with one field `domain`.
* Remove the field `domain` in the `teams` table.
* Link the `history` table to the `domain` one.
* Modify selector and filter accordingly.https://gitlab.in2p3.fr/tev/plugin_event/-/issues/13change javaScript namespace2018-05-18T05:04:29+02:00LE GAC Renaudchange javaScript namespace* `plugin_dbui` 0.9.0 or higher
* Change javaScript namespaces to `Dbui` and `TrackEvents`* `plugin_dbui` 0.9.0 or higher
* Change javaScript namespaces to `Dbui` and `TrackEvents`https://gitlab.in2p3.fr/tev/plugin_event/-/issues/12Add grid filter to the history table using the field data2018-05-18T05:04:29+02:00LE GAC RenaudAdd grid filter to the history table using the field data* Add a *grid filter* on the `history` table using the field `data` and the operator `contains`
* Does not work with `plugin_dbui` 0.8.1
* The main `viewport` is not render properly
* No error message
* ...* Add a *grid filter* on the `history` table using the field `data` and the operator `contains`
* Does not work with `plugin_dbui` 0.8.1
* The main `viewport` is not render properly
* No error message
* ...https://gitlab.in2p3.fr/tev/plugin_event/-/issues/11Run several aggregation functions on the same database field in metric 1D2018-05-18T05:04:29+02:00LE GAC RenaudRun several aggregation functions on the same database field in metric 1D* In the current implementation, an internal error is raise when runnig a metric 1D using the column `min(history.data.age)` and `mean(history.data.age)` at the same time.
* It is is related to the use of the same database field with tw...* In the current implementation, an internal error is raise when runnig a metric 1D using the column `min(history.data.age)` and `mean(history.data.age)` at the same time.
* It is is related to the use of the same database field with two different aggregation functions.
* It might be interesting to remove this bottleneck.
* One user case can be found in `track_lhcbfrance` *metric1D / promotion per grade*. The idea is to display at the same time the min, mean and max age for a given grade.https://gitlab.in2p3.fr/tev/plugin_event/-/issues/10Review code compliance with pylint and jslint.2018-05-18T05:04:29+02:00LE GAC RenaudReview code compliance with pylint and jslint.https://gitlab.in2p3.fr/tev/plugin_event/-/issues/9Migrate the python documentation to sphynx2018-05-18T05:04:29+02:00LE GAC RenaudMigrate the python documentation to sphynxhttps://gitlab.in2p3.fr/tev/plugin_event/-/issues/8Sort list in decreasing order2018-05-18T05:04:29+02:00LE GAC RenaudSort list in decreasing order* List can be sort according to the value of several fields
* The sort order is always `ASC`
* Allow the `DES` using the web2py construct `~`, *i.e* `~year` or `~teams.team`, ....
* A user case is the list `track_lhcbfrance / promotio...* List can be sort according to the value of several fields
* The sort order is always `ASC`
* Allow the `DES` using the web2py construct `~`, *i.e* `~year` or `~teams.team`, ....
* A user case is the list `track_lhcbfrance / promotion CNRS` where promotion should be displayed in decreasing year.
https://gitlab.in2p3.fr/tev/plugin_event/-/issues/7Remove the constraint on the start date in reports2018-09-16T18:39:26+02:00LE GAC RenaudRemove the constraint on the start date in reports* Currently the `start date` has to be specified in list / metric reports.
* Remove this constraint.
* If not specified scan all database entries.* Currently the `start date` has to be specified in list / metric reports.
* Remove this constraint.
* If not specified scan all database entries.