Skip to content

Commit

Permalink
add bash script to run ontoportal web ui in dev mode or run tests
Browse files Browse the repository at this point in the history
  • Loading branch information
syphax-bouazzouni committed Nov 16, 2023
1 parent 8bc339b commit 2b7d34a
Show file tree
Hide file tree
Showing 6 changed files with 168 additions and 274 deletions.
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ gem 'i18n'
gem 'rails-i18n', '~> 7.0.0'
gem 'iconv'
gem 'multi_json'
gem 'mysql2', '0.5.3'
gem 'mysql2'
gem 'oj'
gem 'open_uri_redirections'
gem 'pry'
Expand Down
34 changes: 18 additions & 16 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ GEM
ast (2.4.2)
autoprefixer-rails (10.4.15.0)
execjs (~> 2)
base64 (0.2.0)
bcrypt_pbkdf (1.1.0)
better_html (2.0.2)
actionview (>= 6.0)
Expand All @@ -100,7 +101,7 @@ GEM
smart_properties
bindata (2.4.15)
bindex (0.8.1)
bootsnap (1.16.0)
bootsnap (1.17.0)
msgpack (~> 1.2)
bootstrap (4.2.1)
autoprefixer-rails (>= 9.1.0)
Expand Down Expand Up @@ -143,7 +144,7 @@ GEM
cube-ruby (0.0.3)
daemons (1.4.1)
dalli (3.2.6)
date (3.3.3)
date (3.3.4)
debug (1.8.0)
irb (>= 1.5.0)
reline (>= 0.3.1)
Expand Down Expand Up @@ -174,7 +175,7 @@ GEM
flamegraph (0.9.5)
globalid (1.2.1)
activesupport (>= 6.1)
graphql (2.1.3)
graphql (2.1.6)
racc (~> 1.4)
graphql-client (0.18.0)
activesupport (>= 3.0)
Expand Down Expand Up @@ -208,14 +209,15 @@ GEM
rainbow (>= 2.2.2, < 4.0)
terminal-table (>= 1.5.1)
iconv (1.0.8)
importmap-rails (1.2.1)
importmap-rails (1.2.3)
actionpack (>= 6.0.0)
activesupport (>= 6.0.0)
railties (>= 6.0.0)
inline_svg (1.9.0)
activesupport (>= 3.0)
nokogiri (>= 1.6)
io-console (0.6.0)
irb (1.8.3)
irb (1.9.0)
rdoc
reline (>= 0.3.8)
iso-639 (0.3.6)
Expand Down Expand Up @@ -273,26 +275,27 @@ GEM
multi_json (1.15.0)
multi_xml (0.6.0)
multipart-post (2.3.0)
mysql2 (0.5.3)
mysql2 (0.5.5)
net-ftp (0.2.0)
net-protocol
time
net-http (0.3.2)
net-http (0.4.0)
uri
net-imap (0.4.1)
net-imap (0.4.4)
date
net-protocol
net-pop (0.1.2)
net-protocol
net-protocol (0.2.1)
net-protocol (0.2.2)
timeout
net-scp (4.0.0)
net-ssh (>= 2.6.5, < 8.0.0)
net-smtp (0.4.0)
net-protocol
net-ssh (7.2.0)
netrc (0.11.0)
newrelic_rpm (9.5.0)
newrelic_rpm (9.6.0)
base64
nio4r (2.5.9)
nokogiri (1.15.4-x86_64-darwin)
racc (~> 1.4)
Expand Down Expand Up @@ -390,7 +393,7 @@ GEM
thor (~> 1.0)
zeitwerk (~> 2.5)
rainbow (3.1.1)
rake (13.0.6)
rake (13.1.0)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
Expand Down Expand Up @@ -489,9 +492,9 @@ GEM
rack (>= 1, < 3)
thor (1.2.2)
tilt (2.3.0)
time (0.2.2)
time (0.3.0)
date
timeout (0.4.0)
timeout (0.4.1)
turbo-rails (1.5.0)
actionpack (>= 6.0.0)
activejob (>= 6.0.0)
Expand All @@ -505,7 +508,7 @@ GEM
concurrent-ruby (~> 1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
unf_ext (0.0.9)
unicode-display_width (2.5.0)
uri (0.12.2)
version_gem (1.1.3)
Expand Down Expand Up @@ -533,7 +536,6 @@ GEM
zeitwerk (2.6.11)

PLATFORMS
x86_64-darwin-21
x86_64-darwin-23
x86_64-linux
x86_64-linux-musl
Expand Down Expand Up @@ -573,7 +575,7 @@ DEPENDENCIES
listen
lookbook (~> 1.5.5)
multi_json
mysql2 (= 0.5.3)
mysql2
net-ftp (~> 0.2.0)
net-http
newrelic_rpm
Expand Down
137 changes: 11 additions & 126 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,130 +1,15 @@
bioportal_web_ui
================

A rails application for biological ontologies, see http://bioportal.bioontology.org/

## Todo

### Finir les metadata (grosse prio)

#### Grosses tâches

* Faire en sorte de bien récupèrer quand on a des array de metadata (en ajoutant les champs)
* Faire une method générique (genre une class) qui permet de facilement distinguer les types de metadata (pas besoin d'ajouter les champs en dur dans le code)

* Passer à bootstrap pour faire le joli layout?
* Dans un premier temps import bootstrap seulement dans le form?
* On pourrait faire des col pour ranger les metadata par "dates", "description", "links" dans des panels bootstrap

* Meilleur affichage des metadata :
* Bouton pour les valeurs qui reviennent tout le temps

#### Plein de petits todo

* Permettre de filtrer les ontos en fct des metadata
Voir col P : https://docs.google.com/spreadsheets/d/1r1twxJvXdQXrkX0Ocis6YY08nlO5cGneCAQ5F7U_CoA/edit#gid=0
Surtout dans les pages browse et welcome (voir les trucs en orange). Page Landscape plus tard

Le but c'est d'avoir des résultats visibles

* 3 blocks dans edit submission metadata
* Origin
* Toutes les prop qui ont la valeur S (colonne Q de docs.google Review of metadata prop) pour Simple
* Toutes les prop qui ont la valeur C (colonne Q de docs.google Review of metadata prop) pour Complete


**SEPARER License, onto hasSyntax, etc. Des meatdata de base de NCBO**

**Change tout**
* Premier bloc avec les metadata pas du tout extraites (formats, contact, file upload...)
* 2eme bloc avec les metadata que le portal utilise: description, documentation...
* Expliquer que quand on ajoute un fichier les metadata sont updatés avec les metadata contenues dans le fichier (après le bloc des metadata non extraites)a

X Add contact > même type de bouton que Add new Language

Petit ? quand tu le survoles on dit qu'on extrait normalement cette metadata de l'onto à partir de: list des metadata mappings
Et on note "omv:description + rdfs:comment" quand on prend les valeurs de chaque propriété
Trouver comment montrer qu'on prend omv:naturalLanguage plusieurs fois si remplis plusieurs fois

Rassembler toutes les dates ensembles (au lieu de simple et complete) dans un même table

X Attention date picker par défaut marche pas sur firefox (utiliser date picker de jQuery, celui used par NCBO)

Mettre des espaces : HASCONTRIBUTOR & cie

Afficher dans l'interface graphique quelle metadata on remplis par défaut (on les met toutes au même endroit ?)

TODO list : mettre un champ text plus gros ? (comme description)

Le but est d'éviter d'avoir un gros listing indigeste de metadata

Exemple :
Sous description ajouter bouton "voulez-vous ajouter un abstract?"
Sous release date "voulez-vous ajouter d'autre dates"
Sous contact "voulez-vous ajouter d'autres peoples" ?
Sous publisher "voulez-vous ajouter d'autre rôle d'institut etc"

Depiction et logo à côté l'un de l'autre

Generalizes, HASDISJUNCTIONSWITH, et toutes les metadata de relations entre onto: faire en sorte de pouvoir choisir des ontos dans BioPortal (pitit popip)

Dans Default Properties sur le spreadsheet des metadata elles sont groupées


* Dans browse: permettre de trier dans l'ordre alphabétique
* Ajouter des petits drapeaux à côté des naturalLang (dans browse et dans la page de présentation des submissions)

* IncludedInDataCatalog: faudrait avoir des boutons plutôt (voir avec logo, pour les catalogs connus comme ontobee)

* Handling des metadata plus propre et


### Fermer les issues



### Page Welcome

https://github.com/sifrproject/bioportal_web_ui/issues/12
https://github.com/agroportal/agroportal_web_ui/issues/59


Dans links par exemple on peut mettre "need an ontology mapper: yamplusplus.lirmm.fr"

Feed twitter: https://support.twitter.com/articles/20170071
https://twitter.com/agrohackathon


## Resolve problems

* Ca lag beaucoup sur des ontos avec beaucoup de submissions (comme TRANSMAT sur AgroPortal)

* En particulier quand on ajoute une nouvelle submission

* Add New submission bug parfois (avec uploadFile) : faire des tests, s'il faut ça fait un moment que ça plante sans qu'on s'en rende compte (on utilise beaucoup l'URL en ce moment)
```ruby
TypeError (no implicit conversion of Symbol into Integer):
app/controllers/submissions_controller.rb:28:in `[]'
app/controllers/submissions_controller.rb:28:in `create'
# Following line bugs
if @errors[:error][:uploadFilePath] && @errors[:error][:uploadFilePath].first[:options]
end
### Configuration
```
cp .env.sample .env
```

## How to
### Add a facet filter for a metadata in browse
In 3 files :
* app/views/ontologies/browse.html.erb
* public/browse/app.js
* app/controllers/ontologies_controller.rb
## Log to production.log
### Run dev
```bash
bin/ontoportal dev
```

```ruby
Rails.logger.warn "Submission params: #{params[:submission]}"
### Run test with a local OntoPortal API
```bash
bin/ontoportal test
```

45 changes: 45 additions & 0 deletions bin/ontoportal
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#!/usr/bin/env bash
docker compose run --rm rails bash -c "bundle check || bundle install" > /dev/null 2>&1

case "$1" in
"bundle")
echo "Run: $*"
docker compose run --rm -it rails bash -c "$*"
;;
"dev")
echo "Starting development server..."
if [ ! -f ".env" ]; then
echo "the file .env was not found"
exit 0
fi

if [ ! -f "config/bioportal_config_development.rb" ]; then
echo "Creating config/bioportal_config_development.rb file from config/bioportal_config_env.rb.sample"
cp config/bioportal_config_env.rb.sample config/bioportal_config_development.rb
fi

if [ ! -f "config/database.yml" ]; then
echo "Creating config/database.yml file from config/database.yml.sample"
cp config/database.yml.sample config/database.yml
fi

echo "Run: bundle exec rails s -b 0.0.0.0"
docker compose run --rm -it --service-ports rails bash -c "bin/rails db:prepare && bundle exec rails s -b 0.0.0.0"
;;
"test")
echo "Running API..."
bin/run_api

echo "Running tests..."
echo "Run: API_URL=http://localhost:9393 bundle exec rails test -v $*"
docker compose run --rm -it test bash -c "RAILS_ENV=test bin/rails db:prepare && API_URL=http://localhost:9393 bundle exec rails test -v $*"

echo "Stopping API..."
bin/stop_api

;;
*)
echo "Usage: $0 {dev|test|bundle}"
exit 1
;;
esac
Loading

0 comments on commit 2b7d34a

Please sign in to comment.