Skip to content

Commit

Permalink
109 documentation reprise par JEL (#144)
Browse files Browse the repository at this point in the history
* Mise à jour doc :
- readme : ajout du script d'installation et lien vers guide du dev
- fix typo
- implementation de numeric_input_dsfr dans l'app de démo au niveau des input d'UI

* navbarpage() prend un header par defaut
c'est un premier pas pour faciliter l'exécution de convert_to_dsfr

* Amélioration doc :
- Ajout de precision vignette conversion to dsfr
- Ajout des liens vers les changelogs de shiny et du dsfr dans la doc développeur (closes #19)

* Passage des vignettes sur les choix historiques dans un 3e menu : elles n'ont plus vocation à bouger et ne sont pas absoluement nécessaires au candidat mainteneur

- fix typo
- passage sur les lagues à latoute fin, moins important que le worflow avant de comiter

* Reprise des travaux de la branche 58 https://github.com/spyrales/shinygouv/pull/63/filesévoqués en début de presta

* un ptit coup de fusen::inflate avec la version 0.5.1 de fusen pour contrer les modifications de pure forme et limiter le nb fichiers de la review

* hot fix CI : retour à packrat suite au passage à rsconnect v1.0.0

* fix CI - 

rsconnect.check.certificate passé à FALSE pour tenter de résoudre les difficulté de déploiement de l'app de demo

* Update deploy.R - fix CI toujours

remotes::install_local(force = TRUE)
  • Loading branch information
jengelaere authored Aug 23, 2023
1 parent 310678e commit cff7401
Show file tree
Hide file tree
Showing 36 changed files with 337 additions and 172 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/composant.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ ETQ utilisateur/utilisatrice, je souhaite pouvoir ajouter un composant de type `

## Critères d'acceptation des développements effectués

- [ ] Une fonction implementée, documentée, testée : `[COMPOSANT]_dsfr()'
- [ ] Une fonction implémentée, documentée, testée : `[COMPOSANT]_dsfr()'
- [ ] Avec la documentation dans le corps de la fonction
- [ ] La présentation dans une vignette
- [ ] Des tests unitaires
Expand Down
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ representative at an online or offline event.
## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at juliette.engelaere-lefebvre@developpement-durable.gouv.fr.
reported to the community leaders responsible for enforcement at juliette.engelaere@developpement-durable.gouv.fr.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
Expand Down
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Package: shinygouv
Title: Implement the DSFR for your shiny applications
Version: 1.0.2
Authors@R: c(
person("Juliette", "ENGELARE-LEFEBVRE", , "juliette.engelaere-lefebvre@developpement-durable.gouv.fr", role = c("aut", "cre")),
person("Juliette", "ENGELAERE-LEFEBVRE", , "juliette.engelaere-lefebvre@developpement-durable.gouv.fr", role = c("aut", "cre")),
person("Sébastien", "Rochette", , "sebastien@thinkr.fr", role = "aut",
comment = c(ORCID = "0000-0002-1565-9313")),
person("Murielle", "Delmotte", , "murielle@thinkr.fr", role = "aut",
Expand All @@ -11,7 +11,7 @@ Authors@R: c(
comment = c(ORCID = "0000-0002-4816-4624")),
person("Yohann", "Mansiaux", , "yohann@thinkr.fr", role = "aut",
comment = c(ORCID = "0000-0002-8905-6603")),
person("Jean-Daniel", "LOMENEDE", role = "aut"),
person("Jean-Daniel", "LOMENEDE", , "jean-daniel.lomenede@seine-maritime.gouv.fr", role = "aut"),
person("David", "Granjon", role = "ctb"),
person("Alan", "Dipert", role = "ctb")
)
Expand Down
16 changes: 9 additions & 7 deletions R/convert_file_to_dsfr.R
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# WARNING - Generated by {fusen} from /dev/tools/flat_convert_to_dsfr.Rmd: do not edit by hand
# WARNING - Generated by {fusen} from dev/tools/flat_convert_to_dsfr.Rmd: do not edit by hand

#' convert_file_to_dsfr
#'
Expand All @@ -14,26 +14,28 @@
#' @return un fichier
#' @noRd
convert_file_to_dsfr <- function(file, tab_corresp) {

# verifie que c'est bien un fichier et non un dossier
if (isTRUE(file_test("-f", file))) {

message(glue::glue("scan {file}"))
file_read <- readLines(file)

if (isTRUE(grep("tabPanel", file_read) > 0)) {
message(glue::glue("Attention le {file} contient un 'tabPanel': \n - Si celui ci \u00e9tait dans un navbarPage alors le remplacer par un navbarPanel_dsfr. \n - Si celui ci \u00e9tait dans un 'tabsetPanel', alors le remplacer par un 'tabPanel_dsfr'"))
message(glue::glue("Attention le {file} contient un 'tabPanel': \n - Si celui ci \u00e9tait dans un navbarPage alors le remplacer par un navbarPanel_dsfr. \n - Si celui ci \u00e9tait dans un 'tabsetPanel', alors le remplacer par un 'tabPanel_dsfr'"))
}

if (isTRUE(grep("navbarPage", file_read) > 0)) {
message(glue::glue("Attention le {file} contient un 'navbarPage()', la version dsfr n\u00e9cessite un header, voir \\?navbarPage_dsfr"))
message(glue::glue("Attention le {file} contient un 'navbarPage()', la version dsfr n\u00e9cessite un header, voir \\?navbarPage_dsfr"))
}

file_convert <- purrr::reduce2(
paste0(tab_corresp$composant_shiny, "\\("),
paste0(tab_corresp$composant_dsfr, "\\("),
.init = file_read,
stringr::str_replace_all
)
stringr::str_replace_all)
writeLines(file_convert, con = file)

}
return(NULL)
}
10 changes: 6 additions & 4 deletions R/convert_to_dsfr.R
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# WARNING - Generated by {fusen} from /dev/tools/flat_convert_to_dsfr.Rmd: do not edit by hand
# WARNING - Generated by {fusen} from dev/tools/flat_convert_to_dsfr.Rmd: do not edit by hand

#' convert_to_dsfr
#'
#' @description
#' `r lifecycle::badge("experimental")`
#'
#' Il s'agit d'une fonction expérimentale qui vous permet de convertir une application shiny en une application shiny suivant le DSFR. Il reste des pionts de vigilances sur la convertion des tabPanel dans les navbarPage et les tabsetPanel
#' Il s'agit d'une fonction expérimentale qui vous permet de convertir une application shiny en une application shiny suivant le DSFR.
#' Cette fonction va modifier les fichiers de votre application, presents dans le repertoire `path`.
#' Cf. \href{https://spyrales.github.io/shinygouv/articles/convertir-une-app-shiny-en-app-shiny-dsfr.html}{vignette dediee}.
#' Il reste des points de vigilances sur la conversion des tabPanel dans les navbarPage et les tabsetPanel.
#'
#' @param path le chemin du dossier sur lequel faire la conversion, par defaut "R/"
#' @param version le numero de version du dsfr a utiliser, par exemple "1.7.2". Par défaut, la derniere disponible. Utilisé plutot lors du developpement pour tester les retrocompatibilites.
Expand Down Expand Up @@ -38,8 +41,7 @@ convert_to_dsfr <- function(path = "R/", version = get_dsfr_version()) {
stop("Merci de preciser le numero de version a utiliser")
}

if (!file.exists(
system.file(chem, package = "shinygouv"))) {
if (!file.exists(system.file(chem, package = "shinygouv"))) {
stop(glue::glue("Le dossier 'v{version}' n existe pas"))
}

Expand Down
4 changes: 2 additions & 2 deletions R/fluidpage_dsfr.R
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#'
#' @examples
#' if (interactive()) {
#'
#'
#' library(shiny)
#' my_page <- fluidPage_dsfr(
#' header = header_dsfr(
Expand All @@ -26,7 +26,7 @@
#' title = "Gouv",
#' htmltools::div("test")
#' )
#'
#'
#' shiny::shinyApp(
#' my_page,
#' server = function(input, output) {}
Expand Down
4 changes: 2 additions & 2 deletions R/mod_input_ui.R
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ mod_input_ui_ui <- function(id){
title = "Une prems tab",
content = tagList(
h3("Coucou"),
numericInput(
numericInput_dsfr(
inputId = ns("tabpaneln"),
label = "Nombre de points sur le graph",
value = 100
Expand All @@ -40,7 +40,7 @@ mod_input_ui_ui <- function(id){
title = "Une deuxieme tab",
content = tagList(
h3("Salut"),
numericInput(
numericInput_dsfr(
inputId = ns("tabpaneln2"),
label = "Nombre de points sur le plot",
value = 10
Expand Down
10 changes: 5 additions & 5 deletions R/navbarpage_dsfr.R
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
#' )
#' )
#' ,
#'
#'
#' # Second tab
#' navbarPanel_dsfr(
#' title = "radioButtons_dsfr()",
Expand Down Expand Up @@ -86,21 +86,21 @@
#' output$output1 <- renderText({
#' paste("You clicked", input$go, "times")
#' })
#'
#'
#' output$output2 <- renderText({
#' paste("You've selected", input$espece)
#' })
#'
#'
#' }
#'
#'
#' if (interactive()) {
#' # Run the application
#' shinyApp(ui = ui, server = server)
#' }
navbarPage_dsfr <- function(
title,
...,
header = NULL,
header = header_dsfr(intitule = "intitule a remplacer"),
id = NULL,
footer = NULL
) {
Expand Down
2 changes: 1 addition & 1 deletion R/run_app.R
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#' Run the Shiny Application
#' Run the shinygouv-demo Application
#'
#' @param ... arguments to pass to golem_opts.
#' See `?golem::get_golem_options` for more details.
Expand Down
1 change: 1 addition & 0 deletions R/selectinput_dsfr.R
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#' @param choices Liste des valeurs à sélectionner (si les éléments de la liste portent un nom, c'est ce nom qui est affiché à l'utilisateur et non la valeur)
#' @param selected Element selectionné
#' @importFrom assertthat assert_that
#' @importFrom purrr map
#' @return html
#'
#' @export
Expand Down
19 changes: 15 additions & 4 deletions README.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,15 @@ knitr::opts_chunk$set(

# {shinygouv}

Le package {shinygouv} permet d'utiliser le template existant pour le `Système de Design de l'Etat` (DSFR) dans vos applications Shiny.
Le package {shinygouv} permet d'utiliser le [`Système de Design de l'Etat` (DSFR)](https://www.systeme-de-design.gouv.fr/) dans vos applications Shiny.

Il s'installe depuis github :

```{r}
# install.packages("remotes")
remotes::install_github("spyrales/shinygouv")
```


# Comment utiliser le package

Expand Down Expand Up @@ -46,14 +54,17 @@ shinyApp(
```


# Visualiser un application de démonstration comprenant les composants déjà implémentés:
# Visualiser une application de démonstration comprenant les composants déjà implémentés:

[shinygouv-demo](https://ssm-ecologie.shinyapps.io/shinygouv-demo/)
[shinygouv-demo version de dev](https://ssm-ecologie.shinyapps.io/shinygouv-demo-dev/)

# Contribuer au développement du package

Voir le README du dossier [documentation](dev/documentation)
Voir les vignettes à l'intention des développeurs du [site de présentation du packages et de ses fonctions](https://spyrales.github.io/shinygouv/articles/index.html)

# Code of Conduct

Please note that the {shinygouv} project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
Notez svp qu'un Code de conduite ([Contributor Code of Conduct](https://spyrales.github.io/shinygouv/CODE_OF_CONDUCT.html)) encadre la participation au projet {shinygouv}.

En contribuant à ce projet, vous acceptez de le respecter.
5 changes: 5 additions & 0 deletions _pkgdown.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,8 @@ articles:
desc: Vignettes à l'intention des mainteneurs de `{shingouv}`
contents:
- starts_with("Dev")

- title: Orientations initiales de développement
desc: Notes à l'intention des mainteneurs de `{shingouv}` curieux de comprendre son histoire
contents:
- starts_with("Hist")
2 changes: 1 addition & 1 deletion app.R
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Launch the ShinyApp (Do not remove this comment)
# Launch the ShinyApp shinygouv-demo (Do not remove this comment)
# To deploy, run: rsconnect::deployApp()
# Or use the blue button on top of this file

Expand Down
18 changes: 9 additions & 9 deletions dev/config_fusen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ flat_actionButton.Rmd:
tests:
- tests/testthat/test-actionbutton_dsfr_template.R
- tests/testthat/test-actionbutton_dsfr.R
vignettes: vignettes/actionbutton_dsfr.Rmd
vignettes: []
inflate:
flat_file: dev/flat_composants/flat_actionButton.Rmd
vignette_name: actionButton_dsfr
vignette_name: .na
open_vignette: yes
check: no
document: yes
Expand Down Expand Up @@ -43,7 +43,7 @@ flat_checkBoxInput.Rmd:
document: yes
overwrite: ask
flat_convert_to_dsfr.Rmd:
path: dev/flat_convert_to_dsfr.Rmd
path: dev/tools/flat_convert_to_dsfr.Rmd
state: active
R:
- R/convert_file_to_dsfr.R
Expand All @@ -53,12 +53,12 @@ flat_convert_to_dsfr.Rmd:
- tests/testthat/test-convert_file_to_dsfr.R
- tests/testthat/test-convert_to_dsfr.R
- tests/testthat/test-get_dsfr_version.R
vignettes: vignettes/convertir-une-app-shiny-en-app-shiny-dsfr.Rmd
vignettes: []
inflate:
flat_file: dev/flat_convert_to_dsfr.Rmd
vignette_name: Convertir une app shiny en app shiny dsfr
flat_file: dev/tools/flat_convert_to_dsfr.Rmd
vignette_name: .na
open_vignette: yes
check: yes
check: no
document: yes
overwrite: ask
flat_fluidpage.Rmd:
Expand Down Expand Up @@ -291,10 +291,10 @@ flat_withSpinner.Rmd:
state: active
R: R/withspinner_dsfr.R
tests: tests/testthat/test-withspinner_dsfr.R
vignettes: vignettes/withspinner_dsfr.Rmd
vignettes: []
inflate:
flat_file: dev/flat_composants/flat_withSpinner.Rmd
vignette_name: withSpinner_dsfr
vignette_name: .na
open_vignette: no
check: no
document: yes
Expand Down
2 changes: 1 addition & 1 deletion dev/flat_composants/flat_fluidpage.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -686,7 +686,7 @@ test_that("column_dsfr works", {

## Conclusion

Voila plusieurs exemples d'implémentation de composants/layouts qui ne demandent pas d'intéraction avec {shiny}. Vous pouvez reproduire ce processus avec les [cartes](https://gouvfr.atlassian.net/wiki/spaces/DB/pages/222331445/Carte+-+Card) ou les [alertes](https://gouvfr.atlassian.net/wiki/spaces/DB/pages/736362500/Alertes+-+Alerts).
Voila plusieurs exemples d'implémentation de composants/layouts qui ne demandent pas d'interaction avec {shiny}. Vous pouvez reproduire ce processus avec les [cartes](https://gouvfr.atlassian.net/wiki/spaces/DB/pages/222331445/Carte+-+Card) ou les [alertes](https://gouvfr.atlassian.net/wiki/spaces/DB/pages/736362500/Alertes+-+Alerts).

```{r development-inflate, eval=FALSE}
# Run but keep eval=FALSE to avoid infinite loop
Expand Down
2 changes: 1 addition & 1 deletion dev/flat_composants/flat_navbarPage.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ La `navbarPage_dsfr()` se compose de :
navbarPage_dsfr <- function(
title,
...,
header = NULL,
header = header_dsfr(intitule = "intitule a remplacer"),
id = NULL,
footer = NULL
) {
Expand Down
2 changes: 1 addition & 1 deletion dev/flat_composants/flat_new_one.Rmd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "flat_new_one.Rmd empty"
title: "flat_nom_composant_shiny.Rmd empty"
output: html_document
editor_options:
chunk_output_type: console
Expand Down
5 changes: 3 additions & 2 deletions dev/tools/deploy.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ options("repos" = "https://packagemanager.posit.co/cran/__linux__/jammy/latest")
install.packages("remotes")
install.packages("pak")
remotes::install_deps()
remotes::install_local()
remotes::install_local(force = TRUE)


message("--- Add server ---\n")
Expand All @@ -19,8 +19,9 @@ rsconnect::setAccountInfo(
message("--- Deploying app ---\n")
appFiles <- list.files(".", recursive = TRUE)
appFiles <- appFiles[!grepl(".Rprofile|renv|rstudio_|dev|data-raw|docker|testthat|test.convert.dsfr", appFiles)]

options(rsconnect.packrat = TRUE)
options(rsconnect.check.certificate = FALSE)
options(rsconnect.http.verbose = TRUE)

rsconnect::deployApp(
appDir = ".",
Expand Down
8 changes: 5 additions & 3 deletions dev/tools/flat_convert_to_dsfr.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,10 @@ convert_to_dsfr(path = "le_chemin_de_mon_application")
#' @description
#' `r lifecycle::badge("experimental")`
#'
#' Il s'agit d'une fonction expérimentale qui vous permet de convertir une application shiny en une application shiny suivant le DSFR. Il reste des pionts de vigilances sur la convertion des tabPanel dans les navbarPage et les tabsetPanel
#' Il s'agit d'une fonction expérimentale qui vous permet de convertir une application shiny en une application shiny suivant le DSFR.
#' Cette fonction va modifier les fichiers de votre application, presents dans le repertoire `path`.
#' Cf. \href{https://spyrales.github.io/shinygouv/articles/convertir-une-app-shiny-en-app-shiny-dsfr.html}{vignette dediee}.
#' Il reste des points de vigilances sur la conversion des tabPanel dans les navbarPage et les tabsetPanel.
#'
#' @param path le chemin du dossier sur lequel faire la conversion, par defaut "R/"
#' @param version le numero de version du dsfr a utiliser, par exemple "1.7.2". Par défaut, la derniere disponible. Utilisé plutot lors du developpement pour tester les retrocompatibilites.
Expand All @@ -163,8 +166,7 @@ convert_to_dsfr <- function(path = "R/", version = get_dsfr_version()) {
stop("Merci de preciser le numero de version a utiliser")
}
if (!file.exists(
system.file(chem, package = "shinygouv"))) {
if (!file.exists(system.file(chem, package = "shinygouv"))) {
stop(glue::glue("Le dossier 'v{version}' n existe pas"))
}
Expand Down
4 changes: 2 additions & 2 deletions inst/test.convert.dsfr/DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Package: test.convert.dsfr
Title: PKG_TITLE
Title: App Shiny Test Convert DSFR
Version: 0.0.0.9000
Authors@R:
person("AUTHOR_FIRST", "AUTHOR_LAST", , "AUTHOR@MAIL.COM", role = c("cre", "aut"))
Description: PKG_DESC.
Description: App shiny test.convert.dsfr pour tester convert_to_dsfr().
License: MIT + file LICENSE
Imports:
config (>= 0.3.1),
Expand Down
2 changes: 1 addition & 1 deletion inst/test.convert.dsfr/dev/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@

zz_rsconnect*
*.html
5 changes: 4 additions & 1 deletion man/convert_to_dsfr.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit cff7401

Please sign in to comment.