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/6Add the possibility to filter a list / metric on the field history.data2018-09-16T18:39:26+02:00LE GAC RenaudAdd the possibility to filter a list / metric on the field history.data* In list (metric) filter add the field data
* The filter operation is `contains`* In list (metric) filter add the field data
* The filter operation is `contains`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.https://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/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/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/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/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/15Migrate to Ext JS 62018-05-18T05:04:29+02:00LE GAC RenaudMigrate to Ext JS 6https://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/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/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/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/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/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/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/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/5Add option to activate / de-activate the summary row in metric 2D2017-04-06T16:43:21+02:00LE GAC RenaudAdd option to activate / de-activate the summary row in metric 2D* The summary is miss leading in `track_lhcbfrance / dotation per year`
* The option has to be add in the metric configuration.* The summary is miss leading in `track_lhcbfrance / dotation per year`
* The option has to be add in the metric configuration.https://gitlab.in2p3.fr/tev/plugin_event/-/issues/3Improve the branching model using GitLab functionalities2015-05-20T20:53:45+02:00LE GAC RenaudImprove the branching model using GitLab functionalities* In the commit 15dd10, the branching model described in http://nvie.com/posts/a-successful-git-branching-model have been adopted. It relies on the branches: master, develop, feature, hotfix and release.
* Later on, the git repository ...* In the commit 15dd10, the branching model described in http://nvie.com/posts/a-successful-git-branching-model have been adopted. It relies on the branches: master, develop, feature, hotfix and release.
* Later on, the git repository has been migrated to GitLab.
* The branching model can be simplified using the GitLab functionalities **issues tracking** and **merge request** as recommended in http://doc.gitlab.com/ee/workflow/gitlab_flow.html.
* The branching model is based on two stable branches **master** and **production**.
* Each code modification (bug fix, improvement, ...) start with an issue.
* For each issue a feature branch is created. Its name starts with the issue number.
* When the code for the issue is finished, it is pushed in the master branch via a *merge request*. The merge request description has to contains the issues number (fixes #14, closes #67, etc.). The issue has to be closed and the branch has to be deleted when the merge request is accepted.
* When the master branch reach a point corresponding to a release, it is pushed in the production branch via a *merge request*.
* An *hot fix* start by an issue. It is prepared in a dedicated branch. Once ready the dedicated branch is push to the master via a *merge request* (conflict might be solved at that time). The hot fix branch is pushed to the production branch when the hot fix is working in the master branch. Then the hot fix branch is deleted.
* The script ``buildVersion.py`` as to be renamed ``build_version.py`` and adapt to the branching model
* The branch `production` has to be created from the master branch at b7e3c8.
* The branch `develop` has to be merge in the master branch via a merge request.