beat issueshttps://gitlab.idiap.ch/groups/beat/-/issues2019-01-09T18:52:34Zhttps://gitlab.idiap.ch/beat/beat.editor/-/issues/165beat editor is down again with new error. may be relavant to issue #149.2019-01-09T18:52:34ZZohreh MOSTAANIbeat editor is down again with new error. may be relavant to issue #149.This time I do not get a blank page when I run the editor but when I check any of the tabs (experiments, algorithms) etc I get a blank page. It happened in the middle of editing some experiment but I do not know where is the problem beca...This time I do not get a blank page when I run the editor but when I check any of the tabs (experiments, algorithms) etc I get a blank page. It happened in the middle of editing some experiment but I do not know where is the problem because the experiment is running.
I get this error on the firefox console:
```
too much recursion[Learn More]
```
and this error on the terminal:
```
[2018-10-15 16:39:26,355] ERROR in app: Exception on /algorithms [GET]
Traceback (most recent call last):
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/flask_restful/__init__.py", line 480, in wrapper
resp = resource(*args, **kwargs)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/flask/views.py", line 88, in view
return self.dispatch_request(*args, **kwargs)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/flask_restful/__init__.py", line 595, in dispatch_request
resp = meth(*args, **kwargs)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/editor/resources.py", line 339, in get
return self.refresh()
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/editor/resources.py", line 333, in refresh
return generate_entity_tree(entity, self.config)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/editor/resources.py", line 213, in generate_entity_tree
for f in obj['children']:
KeyError: 'children'
Exception on /algorithms [GET]
Traceback (most recent call last):
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/flask_restful/__init__.py", line 480, in wrapper
resp = resource(*args, **kwargs)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/flask/views.py", line 88, in view
return self.dispatch_request(*args, **kwargs)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/flask_restful/__init__.py", line 595, in dispatch_request
resp = meth(*args, **kwargs)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/editor/resources.py", line 339, in get
return self.refresh()
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/editor/resources.py", line 333, in refresh
return generate_entity_tree(entity, self.config)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/editor/resources.py", line 213, in generate_entity_tree
for f in obj['children']:
KeyError: 'children'
```https://gitlab.idiap.ch/beat/beat.web/-/issues/549Expand required for supervision lists2020-05-06T07:32:29ZFlavio TARSETTIExpand required for supervision listsThe supervision lists should be expanded over multiple columns to improve its visibilityThe supervision lists should be expanded over multiple columns to improve its visibilityFlavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.web/-/issues/550Notify supervisor of supervisee yearly revalidation - Quick link to revoke su...2020-05-18T13:06:16ZFlavio TARSETTINotify supervisor of supervisee yearly revalidation - Quick link to revoke supervisionWhen a supervisee revalidates his account during a yearly revalidation process, the supervisor should be notifed in order to quickly check if the revalidation claim is based on proper supervision information.
The supervisor can drop the...When a supervisee revalidates his account during a yearly revalidation process, the supervisor should be notifed in order to quickly check if the revalidation claim is based on proper supervision information.
The supervisor can drop the email notification if all is correct or should be able to quickly revoke this supervision claim if needed through a temporary link given in the email.
Related to #542Flavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.editor/-/issues/167[plotterparameter] first plotter selected instead of blank selection and sche...2018-10-31T13:05:04ZFlavio TARSETTI[plotterparameter] first plotter selected instead of blank selection and schema validation is wrong (having 1 plotter selected is a requirement)As in #154 and fixed in my MR !23 we have the same issue for the plotterparameter component:
The selector by default shows the first available plotter as selected, but it should really show a "blank" selection, prompting the user to choo...As in #154 and fixed in my MR !23 we have the same issue for the plotterparameter component:
The selector by default shows the first available plotter as selected, but it should really show a "blank" selection, prompting the user to choose a plotter. It tricks the user to believe that he has selected something BUT in the json file there's no plotter selected.
The plotterparameter believes it is valid even without any plotter. This needs to be fixedFlavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.web/-/issues/551Blocked account login attempts2020-05-26T12:57:45ZFlavio TARSETTIBlocked account login attemptsIf an account is blocked (not revalidated), then password reactivation is not possible. In this case, it would be nice to receive an e-mail indicating that, instead, and what to do to re-activate the account.
We do not wish to inform on...If an account is blocked (not revalidated), then password reactivation is not possible. In this case, it would be nice to receive an e-mail indicating that, instead, and what to do to re-activate the account.
We do not wish to inform online that a successful attempt was made, but rather inform the person by email about this.Flavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.web/-/issues/552Refer to the dockerhub images2020-06-23T15:57:59ZAmir MOHAMMADIRefer to the dockerhub imagesFrom what I understand, we are using public docker images now.
Please also update the docs to reflect that. For example:
https://www.idiap.ch/software/beat/docs/beat/docs/master/beat/beat.web/doc/user/algorithms/guide.html#implementing-a...From what I understand, we are using public docker images now.
Please also update the docs to reflect that. For example:
https://www.idiap.ch/software/beat/docs/beat/docs/master/beat/beat.web/doc/user/algorithms/guide.html#implementing-an-algorithm-in-cSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/2Login box <TAB> behavior is a bit unintuitive2014-09-22T09:01:35ZAndré AnjosLogin box <TAB> behavior is a bit unintuitiveToday, while trying to login, I realised that if a push TAB just after typing the password and then ENTER, I'd reset my password.
Maybe it would be better we move the "Password reset" link away from the login so people don't push it b...Today, while trying to login, I realised that if a push TAB just after typing the password and then ENTER, I'd reset my password.
Maybe it would be better we move the "Password reset" link away from the login so people don't push it by mistake. By "away" I mean both graphically and keyboard-wise.Biometrics Center Kickoff Meeting and BEAT ReviewAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.editor/-/issues/171beat editor does not accept api version 2 as valid2018-11-27T11:19:24ZZohreh MOSTAANIbeat editor does not accept api version 2 as validI am trying to test algorithms written with api version 2 that is introduced in the new platform release. beat editor shows them as invalid all the time. The experiments are running and the algorithms are correct.I am trying to test algorithms written with api version 2 that is introduced in the new platform release. beat editor shows them as invalid all the time. The experiments are running and the algorithms are correct.https://gitlab.idiap.ch/beat/beat.web/-/issues/3Toolchain editor - Save modifications of the display of a toolchain2014-09-04T13:40:51ZAndré AnjosToolchain editor - Save modifications of the display of a toolchainThis has now been implemented.
The save button though, could be improved so that it shows when the system last saved the toolchain being edit. This would given the user some feedback.This has now been implemented.
The save button though, could be improved so that it shows when the system last saved the toolchain being edit. This would given the user some feedback.RP Conference, Darmstadt, DEPhilip ABBETPhilip ABBEThttps://gitlab.idiap.ch/beat/beat.editor/-/issues/172CI broken - "npm not found"2018-12-06T10:24:07ZJaden DIEFENBAUGHCI broken - "npm not found"See https://gitlab.idiap.ch/beat/beat.editor/-/jobs/152718, specifically the line:
```
/local/builds/beat/beat.editor/miniconda/conda-bld/beat.editor_1543860509476/work/conda_build.sh: line 5: npm: command not found
```
This is in the ...See https://gitlab.idiap.ch/beat/beat.editor/-/jobs/152718, specifically the line:
```
/local/builds/beat/beat.editor/miniconda/conda-bld/beat.editor_1543860509476/work/conda_build.sh: line 5: npm: command not found
```
This is in the build step, so it doesn't concern the testing docker image.https://gitlab.idiap.ch/beat/beat.web/-/issues/4Changes to the TOS web site behavior2015-03-18T13:16:48ZAndré AnjosChanges to the TOS web site behaviorBased on discussions with our lawyers and legal partner (Els), I've updated the ToS documentation that is required for Users (i.e. people registering into the platform). Things to do:
1. [x] @Kanma: **URGENT**: Update the ToS using th...Based on discussions with our lawyers and legal partner (Els), I've updated the ToS documentation that is required for Users (i.e. people registering into the platform). Things to do:
1. [x] @Kanma: **URGENT**: Update the ToS using the new `tos.rst` in `docs`.
2. [x] In the ToS, a "Contact Form" is mentioned. This form should be used to notify Idiap of problems with the use or management of the BEAT platform. Currently, this contact form does not exist in our platform. It must be created (with a captcha to avoid spamming). Once that is established, one should replace the placeholder for the contact form in the ToS with the final address. Currently it is set to https://beat-eu.org/platform/contact
3. [x] In discussion with our lawyers, it became clear we need to establish a feature that identifies if a certain **Visitor** (this is != User) is a first time visitor or a recurrent visitor (possibly using cookies). If the visitor is a first time visitor, a banner should pop-up (discretely) and say: "The BEAT Platform, like other sites on the internet, uses cookies to customise your interaction with the platform itself. By visiting the IDIAP BEAT Platform you implicitly acknowledge our Legal Disclaimer." At this point, the words "Legal Disclaimer" should be clickable and point to the `legal_disclaimer.rst` file in the `docs` directory. The file should be displayed like the ToS, as a pop-up. *Users that dismiss the banner, get a cookie indicating they have accepted the disclaimer, with a given version number*.
4. [x] In the Legal Disclaimer, a link to the ToS should be made available. A place holder pointing to "https://beat-eu.org/platform/tos" is there, but should be updated if that changes. Action Point: We should create a URL that points to the ToS like stated.
5. [x] Both the "ToS" and our "Legal Disclaimer" have a version number. Users that access the platform **after** the ToS has been updated, should get a banner pointing to the new ToS. Visitors that access the platform **after** the "Legal Disclaimer" has been updated should also check it again. Note that **Users** don't need to go through the "Legal Disclaimer", just visitors. *This feature can be achieved by comparing the cookie established on the user browser with the current version of the ToS/Legal Disclaimer and showing/updating it*.
6. [x] While we can make sure that a person that does not accept the ToS cannot register, we cannot make sure that a Visitor that does not agree with the Legal Disclaimer will not continue visiting the website. By clicking on the "banner close" button or by popping up the "Legal Disclaimer", the user implicitly agrees with what is said in there. If they don't agree, then they should just leave the website. At this point, creating a mechanism to block the contents may be tricky (@Kanma: what do you think about this?)
After all these items have been implemented, I think we can finally close this issue.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.editor/-/issues/173[CI] tests are failing2018-12-15T15:30:54ZZohreh MOSTAANI[CI] tests are failingMy pipelines are failing with ``npm`` errors. @jdiefenbaugh could you please take a look?My pipelines are failing with ``npm`` errors. @jdiefenbaugh could you please take a look?Jaden DIEFENBAUGHJaden DIEFENBAUGHhttps://gitlab.idiap.ch/beat/beat.web/-/issues/5Some key web pages result in a 404 error2014-09-04T14:21:49ZAndré AnjosSome key web pages result in a 404 errorThis is a list of web pages that result in a 404 error presently.
- [X] If you search for a user and click on the resulting page at the "Users" box, the presented link to the user is missing the initial URL path. The end result is a 4...This is a list of web pages that result in a 404 error presently.
- [X] If you search for a user and click on the resulting page at the "Users" box, the presented link to the user is missing the initial URL path. The end result is a 404. The link says `/user/<username>` instead of `/platform/user/<username>`.
- [ ] If you search for a database and click on the resulting page at the "Database" box, the presented link to the database results in a 404. This page should be filled with the database description and characteristics extracted from the database itself. A starting point is this description: https://gitlab.idiap.ch/biometric/beat.databases/wikis/homeRP Conference, Darmstadt, DELaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.web/-/issues/6Small fixes to the web interface2014-09-04T13:41:08ZAndré AnjosSmall fixes to the web interfaceThis is a collection of small fixes to the web interface, to make it more coherent. Some of these suggestions are temporary. Feel free to edit this bug and mark items as outdated (use a ~~strikethrough syntax~~), fixed (just put an `x` o...This is a collection of small fixes to the web interface, to make it more coherent. Some of these suggestions are temporary. Feel free to edit this bug and mark items as outdated (use a ~~strikethrough syntax~~), fixed (just put an `x` on its checkbox) or add new items.
- [X] ~~In the user algorithms page, it would be nice for the time being to gray out the "New" button so it is clear the user cannot create a new algorithm from the web just yet.~~ Display a warning about the online edition of algorithms
- [X] Same as above, but for data formats
- [X] If I log-in as user "anjos" and search for "eigenface", the results page show me private results from the user "tutorial". This must be fixed!
- [X] When I add one block and try to edit any information of the block (the name or the connectors), the information only persists if I type <enter>. If I click in any point outside the block, I loose what I typed. The expected behavior should be: if you type and loose focus, whatever you typed persists.
- [X] The save button on the toolchain editor should give the user some feedback that the toolchain has been saved. This relates directly to issue #3. When it is done, it should also be closed.
- [X] When you try to create a second connection in a block (toolchain editor), the channel is automatically null.
- [X] In the edition mode of the toolchain, the "fork it" is enabled and doesn't execute any action
- [X] It is not possible to change the status (private to public, private to public for some users) of a data format
- [X] In a failed experiment, the "Cancel it" button appears instead of a "Delete" button.RP Conference, Darmstadt, DEPhilip ABBETPhilip ABBEThttps://gitlab.idiap.ch/beat/beat.editor/-/issues/175[v2] Coding Guidelines2019-01-23T08:46:31ZFlavio TARSETTI[v2] Coding GuidelinesThe following document proposes the guidelines to be followed for the implementation beat.editor version 2.
- all features need mandatory tests to be validated
- code should be well written and documented to be validated
- usage of *bl...The following document proposes the guidelines to be followed for the implementation beat.editor version 2.
- all features need mandatory tests to be validated
- code should be well written and documented to be validated
- usage of *black for python* and other tools to standardize the code
- we will be updating a set of guidelines to follow for the new version
- 1 merge request per feature and bug fix only
- only *atomic* commits
- clean commit messages (i.e.: [plotter] added plotter lines generation. Fixes #xx)
- A nose testable editor or we could look at pytest-qt too[v2] 1 - Edition/Visualization for small editorshttps://gitlab.idiap.ch/beat/beat.web/-/issues/7Integration with the new scheduler2016-06-24T10:33:06ZAndré AnjosIntegration with the new schedulerHere is a task list with topics that require attention for the integration:
- [X] The most important feature to be integrated is the ability to start/stop the experiment. This has been implemented in the scheduler.
- [X] When deletin...Here is a task list with topics that require attention for the integration:
- [X] The most important feature to be integrated is the ability to start/stop the experiment. This has been implemented in the scheduler.
- [X] When deleting an experiment, if the experiment is still running, then the experiment must be cancelled by the scheduler
- [X] The update of the dataflow drawing while the toolchain executes should respect the new abilities of the scheduler to report start/end of each block and for the experiment as they arrive. There is no need anymore for the platform to guess that certain blocks are being executed.
- [ ] There should be an administrative page on the beat web site that allows for:
- [X] Viewing the current scheduler state through the `/state` API call
- [X] Cancel all running experiments
- [X] Clean the cache content
- [ ] Change the scheduling policy
- [ ] Change the debugging level
- [X] Change the queue/environment/worker/slot configuration.
- [X] The web server should hold and allow for administrative change of queue/environment/worker/slot properties
- [x] For each block of the experiment, the user should be allowed to select:
- [x] Processing queue to use, following user rights
- [x] Processing environment to use
- [x] Number of slots to occupy
These information should be transmitted to the scheduler.
Hints on behavior and implementation details:
### Use Cases
1. Simple xp submission by an user with no particular rights
2. A xp submission with a user which has 1000 points of reputation
3. A xp submission with a user that has priority on a given queue
### New Tables on the Django DB:
We must first define an "environment". The environment has a name (e.g. "Python"), a version (e.g. "2.7.3"), a OS (e.g. "Debian Wheezy 7.2 (x86_64)"), a rich description string which defines all properties of that environment, including installed packages.
Each "queue" in the system is defined with a name (e.g. "3 hours/4G on Python"), a memory limit (e.g. "4096Mb"), a time limit (e.g. "3 hours"), an environment (e.g. "Python") and the number of slots the queue can occupy, at most, on every machine available in the system.)
Each user "library" consists of a bunch of files that are packaged together and put on a certain directory. Their organisation follows the same strategies as for algorithms. The sole exception is that each library is represented by a directory rather than a single file. The "library" is defined with a name (e.g. "lbp"), a version (e.g. "1.0"), an environment compatibility list and a list of other libraries this library depends on.
We must also define another table called "GroupQueueRights" in which we are going to track 4 aspects: queue - group - max slots - priority. For example: a user belonging to group "default" may be able to use 5 slots on queue "3 hours/4G on Python" with priority 0.
A user may belong to several groups. In this case, the platform should only consider the maximum slots/priority for each Queue when submitting the job to the scheduler.
E.g.: on GroupQueueRights table (queue name, group name, slots, priority):
```text
Row 1: Q1 - default - 2 - 0
Row 2: Q1 - special - 1 - 1
Row 3: Q1 - super - 3 - 1
User "A" belongs to group "default": Computed user queue rights are (Q1 - 2 - 0)
User "B" belongs to groups "default" and "super": Computed user queue rights are (Q1 - 3 - 1)
User "C" belongs to groups "default" and "special": Computed user queue rights are (Q1 - 2 - 1)
```
### Worker Perspective
The worker installed in each machine knows where each local environment with a given name and version is installed and how to execute user programs using that environment.
The program execution receives as parameters:
1. the environment
2. the parameters to call the environment executable with
> N.B.: The parameter list API for all environment executables defines our so-called Sandboxing
> API. It has to be respected for all environment implementations.
The worker is just told what to do - it does not check for rights or know any of that.
### User Perspective Operation
The user selects an overall execution queue for that experiment. It may also specify individual queues for individual blocks. The platform only allows the user to select queues in which the user has at least 1 slot for processing (other queues, even if they exist, are suppressed from the selection box).
After basic queue selection, every block on the toolchain executes in a single slot for the selected queues. If the algorithm does support a multi-slot operation, then the platform will allow the user to select how many slots (max'ed at the user rights) to use for a given block.
Users can submit as many jobs as they want. They will be treated according to queue rights and farm availability.
### Web Platform
In possession of all this information, the web platform will submit to the scheduler, the experiment for execution. Each request for execution contains 4 components:
* Toolchain
* Configuration, containing the queues, libraries and slots the user wants to deploy
* Username or ID
* User queue rights - computed from the max of all the groups the user belongs to
> NB: The reputation can be implemented as a multiplying factor. (ceilled at the total # of slots for a
> particular queue). For example, a user with Reputation = 200 has 2x more processing power than the established
> User queue rights.
### Scheduler
The scheduler will receive run-xp requests and breaks down the experiments in jobs (representing the blocks) with dependencies.
At each queue loop it must decide what to execute based on:
* Current slot availability for the different queues/users (user-queue occupation state needs to be stored)
* Job queueing time (how old is the job?)
* User queue rights/priority
> N.B.: If the Scheduler receives a second job for the same user, the queue rights for that user will be updated
> with the new values, in case they differ.
### Simplifications for first implementation
1. There is only 1 environment installed, based on Python/"execute_single_algorithm.py".
2. All queue priorities are set to 0 (i.e. the scheduler can ignore it)
3. #slots/memory goes in pairs until we understand all this a bit better
4. The scheduler implements only a FIFO (first queued/runnable is run) strategy based on the job submission age
5. Libraries must be written in pure Python
6. No reputation system is in place just yetOpen-source Releasehttps://gitlab.idiap.ch/beat/beat.editor/-/issues/162[algorithm] a "warning" for algorithms2019-01-18T18:01:51ZFlavio TARSETTI[algorithm] a "warning" for algorithmsA strange warning appears when loading algorithms in the interface:
```
Warning: Failed prop type: Invalid prop `children` supplied to `Form`, expected a ReactNode.
in Form (created by AlgorithmEditor)
in AlgorithmEditor (create...A strange warning appears when loading algorithms in the interface:
```
Warning: Failed prop type: Invalid prop `children` supplied to `Form`, expected a ReactNode.
in Form (created by AlgorithmEditor)
in AlgorithmEditor (created by Connect(AlgorithmEditor))
in Connect(AlgorithmEditor) (created by EntityDetail)
in div (created by TabPane)
in TabPane (created by EntityDetail)
in div (created by TabContent)
in TabContent (created by EntityDetail)
in div (created by Col)
in Col (created by EntityDetail)
in div (created by Row)
in Row (created by EntityDetail)
in div (created by Container)
in Container (created by EntityDetail)
in EntityDetail (created by Connect(EntityDetail))
in Connect(EntityDetail) (created by Route)
in Route (created by EntityHome)
in Switch (created by EntityHome)
in EntityHome (created by MainContent)
in div (created by MainContent)
in MainContent (created by Route)
in Route (created by App)
in Switch (created by App)
in div (created by Container)
in Container (created by App)
in Router (created by HashRouter)
in HashRouter (created by App)
in App (created by HotExportedApp)
in AppContainer (created by HotExportedApp)
in HotExportedApp
in Provider
printWarning @ checkPropTypes.js:19
checkPropTypes @ checkPropTypes.js:82
validatePropTypes @ react.development.js:1300
createElementWithValidation @ react.development.js:1388
React$$1.createElement @ react-hot-loader.development.js:964
AlgorithmEditor.render @ AlgorithmEditor.jsx:566
finishClassComponent @ react-dom.development.js:13193
updateClassComponent @ react-dom.development.js:13155
beginWork @ react-dom.development.js:13824
performUnitOfWork @ react-dom.development.js:15863
workLoop @ react-dom.development.js:15902
renderRoot @ react-dom.development.js:15942
performWorkOnRoot @ react-dom.development.js:16560
performWork @ react-dom.development.js:16482
performSyncWork @ react-dom.development.js:16454
interactiveUpdates$1 @ react-dom.development.js:16719
interactiveUpdates @ react-dom.development.js:2150
dispatchInteractiveEvent @ react-dom.development.js:4532
```Jaden DIEFENBAUGHJaden DIEFENBAUGHhttps://gitlab.idiap.ch/beat/beat.editor/-/issues/166[tests] no input validation and empty test files2019-01-21T18:41:25ZFlavio TARSETTI[tests] no input validation and empty test filesA large number of tests for each components are missing and need to be fixed:
- input validation are missing in the `ParameterCreate.jsx`
- some files such as `PlotterParameterEditor.spec.jsx, PlotterEditor.spec.jsx` are empty files (I ...A large number of tests for each components are missing and need to be fixed:
- input validation are missing in the `ParameterCreate.jsx`
- some files such as `PlotterParameterEditor.spec.jsx, PlotterEditor.spec.jsx` are empty files (I am currently working on the `PlotterEditor.spec.jsx`)https://gitlab.idiap.ch/beat/beat.web/-/issues/8Deletion of objects by the user2015-08-19T07:50:38ZAndré AnjosDeletion of objects by the userUsers need to be able to delete (private) objects using the web interface. So far, this is only possible through the command-line. The following objects should be deletable:
- [x] experiments, if not certified (public or private, w/o ...Users need to be able to delete (private) objects using the web interface. So far, this is only possible through the command-line. The following objects should be deletable:
- [x] experiments, if not certified (public or private, w/o distinction)
- [x] toolchains, if not used on any experiment. If so, then the experiments must be deleted before the toolchain becomes deletable. I'm not sure what to do with the forking status of forked toolchains.
- [x] algorithms, if not used on any experiment. If so, follow the same rules as for toolchains.
- [x] dataformats, the same as for toolchains and algorithmsBTAS TutorialPhilip ABBETPhilip ABBEThttps://gitlab.idiap.ch/beat/beat.editor/-/issues/176toolchain naming2019-02-07T15:06:01ZFlavio TARSETTItoolchain namingDuring our ALLIES meeting, it has been shown that adding multiple inputs in an object overwrites the names.
For it to work, we need to "add input" then "Save" every time and then re-open the object add another input etc.
What we expect...During our ALLIES meeting, it has been shown that adding multiple inputs in an object overwrites the names.
For it to work, we need to "add input" then "Save" every time and then re-open the object add another input etc.
What we expect is that adding multiples inputs shouldn't overwrite the previous input names.
@jdiefenbaugh : Can you fix this please? Thanks.[v1] Ongoing patching until [v2] is readyJaden DIEFENBAUGHJaden DIEFENBAUGH