- Shiny and learnr events are now recorded in the "events" table instead of "shiny" or "learnr" tables.
webshot_shiny()
now also accepts the path to a PNG file (the screenshot of the app) instead of the url to the Shiny application. This allows to create the webshot image in case the app cannot be accessed directly (for instance, a login in Posit Connect is required). The corresponding RStudio addin is modified to ask for a PNG screenshot if no suitable code is selected.
-
Argument
idurl=
added inh5p()
to allow including exercises from h5p.org or h5p.com. -
Default directory for assignments is now
docs
instead of_book
with subdirectory beingex
an which is now created byclean_ex_doc()
.
-
Small adaptations due to a transfer into the learnitr GitHub organization.
-
License changed to MIT.
-
More robust checking of password.
-
Do not drop Shinylogs records dir, only eliminate each file when it is processed. This allows for recording of several simultaneous sessions.
-
Do not record Shinylogs events whose label starts with ".clientdata_output_".
-
In
launch_shiny()
andwebshot_shiny()
, default width is increased from 780 to 790, otherwiseshiny::sidepanelLayout()
wrap the side panel on the top of the Shiny app.
- In
learnitdown_init()
an h5pxapikatchu js file is not need any more (commented out).
- pkgdown icons added.
- The dependency to {keyring} is added again. It allows to store the password
- {learnr} and {gradethis} upgraded to higher versions.
-
assignation()
andassignation2()
are renamedassignment()
andassignment2()
which are more correct names. -
Assignments and challenge functions get new arguments.
clone=
indicates if we want to generate an entry in a file to clone corresponding repositories automatically.level=
indicates the difficulty level,n=
indicates the number of students per assignment (default to 1 for individual assignments/challenges and to 2 for group assignments/challenges).type=
indicates the type of exercise.acad_year=
is the academic year, andterm=
is the term where the exercise has to be done.course.starts=
andcourse.ends=
indicate starting and ending dates for the exercises for each course (or students groups). -
Assignments now create two additional files. An HTML file routes to the correct URL given the context (GitHub Classroom assignment, template GitHub repository if the user is not logged in, or pages indicating it is too soon or too late for these assignments). A CSV file collects assignments information that can be used to clone corresponding repositories and to grade more easily these assignments.
- Better checking of internet access during system configuration.
-
While recording learnr events, the procedure to check if the computer is connected to the Internet sometimes failed without good reasons. Now, check the access to two sites that should be more reliable.
-
For
run_app()
, a better code is now used to display the app running in a job inside the RStudio viewer pane. A new argumentmax.wait =
indicates the number of seconds to wait for the Shiny app to start.
- For
launch_shiny()
, allow to include a search string in the url.
- Better checking of Internet availability in
config()
andrecord_learnr()
.
- Dependency to keyring eliminated.
- Experimental learnr obfuscation functions.
-
Package renamed {learnitdown} to avoid conflicts with http://learndown.com.
-
New functions
lock()
/unlock()
, using an application (e.g., course) password to lock or unlock sensitive data like students' personal information, or database password. -
New obfuscation functions
obfuscate()
,._()
andO()
to hide {learnr} answers in the original .Rmd file. The functionans()
could be used to replacelearnr::answer()
for a cleaner obfuscation mechanism for quizzes.
- Bug correction: when update_pkg() encountered a more recent version of the package, it upgraded it anyway.
-
There are now more GitHub assignation types :
assign2()
for group assignations andchallenge()
/challenge2()
for assignations linked to challenges (individual or in groups). -
Images related to exercise blocks and suggested
style0.css
andpreamble.tex
to be used for {learndown}-enabled {bookdown}s are also provided now.
- Argument
upgrade=
added torun()
,run_app()
andupdate_pkg()
. By default, it is "never", which is a good value inside the SciViews Box, but "ask" may be more appropriate elsewhere.
- Again a problem with bookdown links not correctly retargeted when the bookdown is displayed in an iframe. Corrected.
- For
assignation()
, links now havetarget = "_blank"
so that these links are now functional, even inside an iframe.
-
run_app()
now opens the Shiny application in the default browser (but it is still the Viewer pane in RStudio). -
In
learndown_init()
, links withtarget=
attributes were retargeted to_parent
, but it is those withouttarget=
that had to be changed (corrected). -
In
learn()
andlaunch_shiny()
, the link now havetarget="_blank"
meaning that RStudio is opened in a different tab.
run()
now tries harder to display a tutorial in the Tutorial tab in RStudio.
- Gracefully exit in
run()
andrun_app()
when nothing is selected in the list.
webshot_shiny()
refused to work when it sees thetoc =
argument. Solved.
-
Anchors now include
part
forassignation()
, so that different anchors are used if different parts of the same assignation are proposed in the same section/module of the bookdown. -
Anchor now includes both the image and the iframe for
launch_shiny()
. -
An error message is now displayed in Shiny applications and learnr tutorials if the database is not accessible.
-
In learnr tutorials, access to database is tested only once. If it fails, no further attempt is done in this process in order to avoid too much slow down in systematically trying to connect to a non responding database for each event.
-
Internet access and configuration checking in Shiny applications, with a message displayed in case of error.
-
Addition of
learnr()
andassignation()
functions to create tutorial and GitHub assignation blocks. They use two new blocks:tuto
andassign
blocks with specific icons. -
Addition of
toc
arguments inh5p()
,launch_shiny()
,'learnr()
andassignation()
and a function to generate the exercises table of content withshow_ex_toc()
. Anchors are added in the respective items, so that the toc can link to them. The four types of items are also associated with specific icons that link to help pages when the user clicks them. -
Links to start Shiny applications and learnr tutorials directly in RStudio server in the SciViews Box are added.
- The solution verification in
trackSubmit()
is now customizable, and a much more complete default is provided incheck_shiny_solution()
. - Default
delay =
forwebshot_shiny()
now at 10 sec in order to catch more correct case with default value. - The
run()
function now runs a tutorial in the RStudio tab if possible.
- The url_pathname is now integrated to the user information in Shiny applications, and it is used to get a more meaningful app name in the case of RStudio Server (otherwise, it is always 'app').
fingerprint()
is renamessign_in()
: more explicit.
- The fields score, max and grade are added in all events tables with grade = score/max. The solution for Shiny applications can now use a range for numeric values and a series of correct solutions for text. Also a
max_score =
argument added totrackSubmit()
allows to redefine the maximum score for a Shiny application. - fields type and id added to match what is issued by H5P.
encrypt()
anddecrypt()
are now more versatile and accept more arguments to fine-tune their work.fingerprint()
function added to identify users in local learnr and shiny applications.- New argument
fingerprint.fun =
intrackEvents()
so that locally run Shiny applications can also use user data stored in the fingerprint cache. learndownLearnrSetup()
to initialize easily learndown learnr apps.
- Functions for learndown learnr applications added.
config()
function added.- Reworked database scheme, including course and institution
- Use of
LEARNDOWN_LOCAL_STORAGE
andLEARNDOWN_DEBUG
environment variables everywhere (Shiny and learnr applications). - Fields to be added to the database are adapted to get the same ones between the different applications.
- Events replaced by their equivalent xAPI verbs.
- Allow using an alternate MongoDB server if a Shiny application is run from a server (using MONGO_URL_SERVER environment variable).
- Debug messages possibles in
trackEvents()
to determine the causes of errors when recording Shiny apps events in a MongoDB database.
-
Shiny apps: do not track events when no login and fallback to temporary directory if
path =
is not writable intrackEvents()
. -
The number of opened sessions is tracked in a Shiny app and
stopApp()
is only invoked if there is no other opened session. -
For Shiny applications,
trackEvents()
only tracks events in a MongoDB database for logged users. A message appears briefly (5sec) to indicate the status of the recording when the session is started.
- First version of the learndown package. Including code developed for BioDataScience-Course (show/hide sections depending on the institution or course, hide details, including some code chunks, include H5P, Shiny and learnr applications with user identification and events logging, defer Shiny/learnr apps until the user clicks on it, and an RStudio addin to take screenshots of such apps easily).