A Django app for adding R Shiny apps to a Django site with django CMS-specific features
Project description
djangocms-shiny-app is a Django app for adding R Shiny apps to a Django site with django CMS-specific features.
Source code is available on GitHub at mfcovington/djangocms-shiny-app.
Installation
PyPI
pip install djangocms-shiny-app
GitHub (development branch)
pip install git+http://github.com/mfcovington/djangocms-shiny-app.git@develop
Configuration
Install django CMS and start a project, if one doesn’t already exist.
Unless you use this app as part of djangocms-lab-site or plan to style the app from scratch, you will want to choose the Use Twitter Bootstrap Theme option (when running djangocms) and then edit the resulting templates/base.html.
This will add style that looks like Bootstrap 2. To use Bootstrap 3 styling, remove the following line for the bootstrap-theme.min.css stylesheet from templates/base.html:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.x.x/css/bootstrap-theme.min.css">
The default menu settings for django CMS using Bootstrap will allow the user to access specific lab members via a dropdown menu, but will not give easy access to the summary page of all Shiny apps. To fix this do one of the following:
In templates/base.html, change {% show_menu 0 1 100 100 "menu.html" %} to {% show_menu 0 0 100 100 "menu.html" %}, or
Use a split button dropdowns by changing that line to {% show_menu 0 100 1 1 ‘_menu.html’ %} and populate _menu.html as done in djangocms-lab-site.
Edit the project’s settings.py file.
Add cms_shiny and its dependencies to INSTALLED_APPS:
INSTALLED_APPS = ( # ... 'cms_shiny', 'easy_thumbnails', 'filer', 'mptt', )
Add easy_thumbnail settings:
# For easy_thumbnails to support retina displays (recent MacBooks, iOS) THUMBNAIL_HIGH_RESOLUTION = True THUMBNAIL_QUALITY = 95 THUMBNAIL_PROCESSORS = ( 'easy_thumbnails.processors.colorspace', 'easy_thumbnails.processors.autocrop', 'filer.thumbnail_processors.scale_and_crop_with_subject_location', 'easy_thumbnails.processors.filters', ) THUMBNAIL_PRESERVE_EXTENSIONS = ('png', 'gif') THUMBNAIL_SUBDIR = 'versions'
To access cms_shiny pages without using a django CMS AppHook, include URL configurations for cms_shiny in your project’s urls.py file:
For Django 1.7:
urlpatterns = patterns('', # ... url(r'^shiny_apps/', include('cms_shiny.urls', namespace='cms_shiny')), # ... )
For Django 1.8:
urlpatterns = [ # ... url(r'^shiny_apps/', include('cms_shiny.urls', namespace='cms_shiny')), # ... ]
Migrations
Create and perform cms_shiny migrations:
python manage.py makemigrations cms_shiny
python manage.py migrate
Usage
Start the development server:
python manage.py runserver
Visit: http://127.0.0.1:8000/
Create a CMS page and then:
Attach the Shiny Apps App under Advanced Settings for the page, OR
Insert the Shiny App Plugin into a placeholder field.
Version 0.1.3
Revision History
0.1.3 2015-12-07
Fix thumbnail image elongation in Chrome on screens >= 1200px wide
Require that ShinyApp name and slug are unique
Update README with more complete and accurate instructions
Prepare for distribution via PyPI
0.1.2 2015-04-21
Replace line breaks in slide description field with appropriate HTML
0.1.1 2015-04-19
Improve django CMS integration and styling
0.1.0 2015-04-16
A Django app for adding R Shiny apps to a Django site with django CMS-specific features