React-based front-end for the Plone and Guillotina Content Management Systems
Switch branches/tags
HeroTiles add-addons-controlpanel album_view autologin-as-2 autologin-as babel-upgrade batched-vocabs cekk_contact_form demo extendable-tests extendable fixcontrastandalike fixhmr html-tile improve-reference-widget master pastanaga-toolbar pre-razzle pyup-initial-update pyup-pin-jupyter-1.0.0 pyup-pin-pillow-5.3.0 pyup-pin-robotframework-3.0.4 pyup-pin-robotframework-debuglibrary-1.1.4 pyup-pin-robotframework-faker-4.2.0 pyup-pin-robotframework-pabot-0.45 pyup-pin-robotframework-react-1.0.0a2 pyup-pin-robotframework-requests-0.5.0 pyup-pin-robotframework-selenium2library-3.0.0 pyup-pin-robotframework-seleniumlibrary-3.2.0 pyup-pin-robotframework-webpack-1.1.3 pyup-pin-setuptools-40.5.0 pyup-update-acquisition-4.4.2-to-4.5 pyup-update-archetypes.schemaextender-2.1.8-to-3.0.0 pyup-update-babel-1.3-to-2.6.0 pyup-update-borg.localrole-3.1.5-to-3.1.6 pyup-update-btrees-4.4.1-to-4.5.1 pyup-update-certifi-2017.11.5-to-2018.10.15 pyup-update-chameleon-2.25-to-3.5 pyup-update-collective.mockmailhost-1.1.0-to-2.0.0 pyup-update-collective.monkeypatcher-1.1.4-to-1.1.6 pyup-update-cssselect-1.0.1-to-1.0.3 pyup-update-datetime-4.2-to-4.3 pyup-update-decorator-4.1.2-to-4.3.0 pyup-update-diazo-1.2.8-to-1.2.11 pyup-update-extensionclass-4.3.0-to-4.4 pyup-update-five.customerize-1.1-to-2.0.0 pyup-update-five.globalrequest-1.0-to-99.1 pyup-update-five.intid-1.1.2-to-1.2.0 pyup-update-five.localsitemanager-2.0.6-to-3.2.2 pyup-update-five.pt-2.2.5-to-3.0 pyup-update-future-0.16.0-to-0.17.1 pyup-update-futures-3.1.1-to-3.2.0 pyup-update-icalendar-4.0.1-to-4.0.3 pyup-update-idna-2.6-to-2.7 pyup-update-lxml-4.1.1-to-4.2.5 pyup-update-mailinglogger-3.8.0-to-5.0.0 pyup-update-markdown-2.6.9-to-3.0.1 pyup-update-mechanize-0.2.5-to-0.3.7 pyup-update-missing-3.2-to-4.1 pyup-update-mockup-2.7.2-to-2.7.6 pyup-update-multimapping-3.1-to-4.1 pyup-update-olefile-0.44-to-0.46 pyup-update-persistent-4.2.4.2-to-4.4.3 pyup-update-piexif-1.0.13-to-1.1.1 pyup-update-pillow-4.3.0-to-5.3.0 pyup-update-plone-5.1.2-to-5.1.4 pyup-update-plone.api-1.8.3-to-1.9.0 pyup-update-plone.app.blob-1.7.4-to-1.8.0 pyup-update-plone.app.blocks-4.1.1-to-4.2.0 pyup-update-plone.app.caching-1.2.21-to-1.2.22 pyup-update-plone.app.content-3.5.2-to-3.6.0 pyup-update-plone.app.contentlisting-1.3.3-to-2.0.0 pyup-update-plone.app.contentmenu-2.2.3-to-2.2.4 pyup-update-plone.app.contentrules-4.0.18-to-4.1 pyup-update-plone.app.contenttypes-1.4.10-to-2.0.0 pyup-update-plone.app.controlpanel-3.0.4-to-4.0.0 pyup-update-plone.app.customerize-1.3.7-to-1.3.8 pyup-update-plone.app.dexterity-2.4.9-to-2.5.2 pyup-update-plone.app.discussion-3.0.5-to-3.1.0 pyup-update-plone.app.event-3.1-to-3.2.1 pyup-update-plone.app.folder-1.2.5-to-1.3.0 pyup-update-plone.app.i18n-3.0.4-to-3.0.5 pyup-update-plone.app.imaging-2.0.7-to-2.1.0 pyup-update-plone.app.iterate-3.3.7-to-3.3.10 pyup-update-plone.app.layout-2.7.5-to-3.0.0 pyup-update-plone.app.linkintegrity-3.3.5-to-3.3.7 pyup-update-plone.app.locales-5.1.8-to-5.1.10 pyup-update-plone.app.mosaic-2.0rc8-to-2.1.1 pyup-update-plone.app.multilingual-5.2.0-to-5.3.0 pyup-update-plone.app.portlets-4.3.2-to-4.4.0 pyup-update-plone.app.querystring-1.4.8-to-1.4.10 pyup-update-plone.app.registry-1.7.1-to-1.7.2 pyup-update-plone.app.relationfield-1.4.0-to-1.4.2 pyup-update-plone.app.robotframework-1.2.0-to-1.4.0 pyup-update-plone.app.standardtiles-2.2.0-to-2.3.1 pyup-update-plone.app.testing-5.0.8-to-6.1.1 pyup-update-plone.app.textfield-1.2.11-to-1.3.0 pyup-update-plone.app.theming-2.0.3-to-3.0.0 pyup-update-plone.app.tiles-3.0.3-to-3.1.0 pyup-update-plone.app.upgrade-2.0.14.1-to-2.0.18 pyup-update-plone.app.users-2.4.2-to-2.5.0 pyup-update-plone.app.uuid-1.2-to-2.0.0 pyup-update-plone.app.versioningbehavior-1.3.3-to-1.3.5 pyup-update-plone.app.viewletmanager-2.0.11-to-3.0.0 pyup-update-plone.app.vocabularies-4.0.6-to-4.0.7 pyup-update-plone.app.widgets-2.3-to-2.4.0 pyup-update-plone.app.workflow-3.0-to-4.0.0 pyup-update-plone.app.z3cform-3.0.4-to-3.0.7 pyup-update-plone.autoform-1.7.5-to-1.8.1 pyup-update-plone.batching-1.1.2-to-1.1.4 pyup-update-plone.browserlayer-2.2.1-to-2.2.2 pyup-update-plone.cachepurging-1.0.14-to-2.0 pyup-update-plone.caching-1.1.2-to-1.2.0 pyup-update-plone.contentrules-2.0.7-to-2.0.9 pyup-update-plone.dexterity-2.6.0-to-2.7.0 pyup-update-plone.event-1.3.4-to-1.4.0 pyup-update-plone.folder-1.0.11-to-3.0.0 pyup-update-plone.formwidget.namedfile-2.0.5-to-2.0.7 pyup-update-plone.formwidget.recurrence-2.1.2-to-2.1.3 pyup-update-plone.i18n-3.0.7-to-4.0.1 pyup-update-plone.indexer-1.0.4-to-1.0.5 pyup-update-plone.intelligenttext-2.2.1-to-3.0.0 pyup-update-plone.jsonserializer-0.9.5-to-0.9.6 pyup-update-plone.keyring-3.0.2-to-3.1.0 pyup-update-plone.locking-2.2.2-to-2.2.3 pyup-update-plone.memoize-1.2.2-to-1.2.3 pyup-update-plone.namedfile-4.2.4-to-5.0.1 pyup-update-plone.outputfilters-3.0.4-to-3.1.0 pyup-update-plone.portlet.collection-3.3.0-to-3.3.1 pyup-update-plone.portlet.static-3.1.2-to-3.1.3 pyup-update-plone.protect-3.1.3-to-4.1.0 pyup-update-plone.recipe.zope2instance-4.4.0-to-6.0.0 pyup-update-plone.registry-1.1.2-to-1.1.4 pyup-update-plone.resource-2.0.1-to-2.1.0 pyup-update-plone.resourceeditor-2.1.1-to-2.1.3 pyup-update-plone.rest-1.2.0-to-1.4.0 pyup-update-plone.rfc822-1.1.3-to-2.0.0 pyup-update-plone.scale-3.0.1-to-3.0.3 pyup-update-plone.schemaeditor-2.0.19-to-2.0.20 pyup-update-plone.session-3.7.0-to-3.7.1 pyup-update-plone.stringinterp-1.2.1-to-1.3.1 pyup-update-plone.subrequest-1.8.5-to-1.8.6 pyup-update-plone.supermodel-1.3.4-to-1.4.0 pyup-update-plone.testing-4.3.1-to-7.0.0 pyup-update-plone.theme-3.0.5-to-3.0.6 pyup-update-plone.transformchain-1.2.2-to-2.0.1 pyup-update-plone.z3cform-0.9.1-to-1.0.0 pyup-update-plonetheme.barceloneta-1.8.1-to-1.9.1 pyup-update-ply-3.4-to-3.11 pyup-update-products.archetypes-1.15.1-to-1.15.5 pyup-update-products.atcontenttypes-2.3.8-to-3.0.0 pyup-update-products.btreefolder2-2.14.0-to-4.1 pyup-update-products.cmfcore-2.2.12-to-2.3.1 pyup-update-products.cmfdifftool-3.2.0-to-3.2.2 pyup-update-products.cmfdynamicviewfti-4.1.7-to-6.0.0 pyup-update-products.cmfeditions-3.2.0-to-3.3.0 pyup-update-products.cmfformcontroller-3.1.5-to-4.0.0 pyup-update-products.cmfplacefulworkflow-1.7.5-to-2.0.0 pyup-update-products.cmfplone-5.1.2.1-to-5.1.4 pyup-update-products.cmfquickinstallertool-3.0.16-to-4.0.0 pyup-update-products.cmfuid-2.2.2-to-3.0.1 pyup-update-products.contentmigration-2.1.19-to-2.2.0 pyup-update-products.daterecurringindex-2.1-to-3.0.0 pyup-update-products.dcworkflow-2.2.5-to-2.3.0 pyup-update-products.extendedpathindex-3.3.0-to-3.3.1 pyup-update-products.externaleditor-1.1.3-to-2.0.3 pyup-update-products.externalmethod-2.13.1-to-4.1 pyup-update-products.genericsetup-1.8.8-to-1.10.0 pyup-update-products.mailhost-2.13.2-to-4.2 pyup-update-products.mimetypesregistry-2.1.3-to-2.1.5 pyup-update-products.ofsp-2.13.2-to-4.0.1 pyup-update-products.plonepas-5.0.15-to-6.0.0 pyup-update-products.pluginregistry-1.4-to-1.6.1 pyup-update-products.portaltransforms-3.1.2-to-3.1.5 pyup-update-products.pythonscripts-2.13.2-to-4.2 pyup-update-products.sessions-3.0-to-4.2 pyup-update-products.standardcachemanagers-2.13.1-to-4.0.1 pyup-update-products.statusmessages-5.0.2-to-5.0.4 pyup-update-products.temporaryfolder-3.0-to-5.2 pyup-update-products.validation-2.1-to-2.1.1 pyup-update-products.zcatalog-3.0.3-to-4.2 pyup-update-products.zctextindex-2.13.5-to-4.0.2 pyup-update-products.zopeversioncontrol-1.1.3-to-1.1.4 pyup-update-products.zsqlmethods-2.13.5-to-3.0.3 pyup-update-prompt-toolkit-1.0.15-to-2.0.7 pyup-update-prompt_toolkit-1.0.15-to-2.0.7 pyup-update-python-dateutil-2.6.1-to-2.7.5 pyup-update-pytz-2017.3-to-2018.7 pyup-update-record-2.13.0-to-3.5 pyup-update-robotframework-debuglibrary-1.1.2-to-1.1.4 pyup-update-robotframework-pabot-0.43-to-0.45 pyup-update-robotframework-react-1.0.0a1-to-1.0.0a2 pyup-update-robotframework-requests-0.4.7-to-0.5.0 pyup-update-robotframework-seleniumlibrary-3.1.1-to-3.2.0 pyup-update-roman-1.4.0-to-3.1 pyup-update-selenium-3.14.1-to-3.141.0 pyup-update-setuptools-39.1.0-to-40.5.0 pyup-update-simplejson-3.12.0-to-3.16.0 pyup-update-six-1.10.0-to-1.11.0 pyup-update-transaction-2.1.2-to-2.4.0 pyup-update-trollius-2.1-to-2.2 pyup-update-unidecode-0.4.1-to-1.0.22 pyup-update-urllib3-1.22-to-1.24.1 pyup-update-z3c.autoinclude-0.3.7-to-0.3.8 pyup-update-z3c.caching-2.0a1-to-2.1 pyup-update-z3c.form-3.6-to-4.0 pyup-update-z3c.formwidget.query-0.16-to-0.17 pyup-update-z3c.objpath-1.1-to-1.2 pyup-update-z3c.pt-3.0.0a1-to-3.1.0 pyup-update-z3c.relationfield-0.7-to-0.7.1 pyup-update-zc.buildout-2.11.4-to-2.12.2 pyup-update-zc.lockfile-1.2.1-to-1.4 pyup-update-zc.recipe.egg-2.0.4-to-2.0.7 pyup-update-zc.relation-1.0-to-1.1.post2 pyup-update-zconfig-3.1.0-to-3.3.0 pyup-update-zdaemon-4.2.0-to-4.3 pyup-update-zeo-5.1.1-to-5.2.0 pyup-update-zexceptions-2.13.0-to-4.1 pyup-update-zodb-5.3.0-to-5.5.1 pyup-update-zodbpickle-0.7.0-to-1.0.2 pyup-update-zope.annotation-3.5.0-to-4.7.0 pyup-update-zope.app.locales-3.7.5-to-4.0.1 pyup-update-zope.app.publication-3.12.0-to-4.3.0 pyup-update-zope.authentication-3.7.1-to-4.4.0 pyup-update-zope.browser-2.1.0-to-2.3 pyup-update-zope.browsermenu-4.2-to-4.4 pyup-update-zope.browserpage-4.1.0-to-4.3.0 pyup-update-zope.browserresource-4.1.0-to-4.3 pyup-update-zope.cachedescriptors-3.5.1-to-4.3.1 pyup-update-zope.component-4.4.1-to-4.5 pyup-update-zope.componentvocabulary-1.0.1-to-2.2.0 pyup-update-zope.configuration-3.7.4-to-4.3.0 pyup-update-zope.container-3.11.2-to-4.2.2 pyup-update-zope.contentprovider-3.7.2-to-4.2.1 pyup-update-zope.contenttype-4.2.0-to-4.4 pyup-update-zope.copy-3.5.0-to-4.2 pyup-update-zope.datetime-3.4.1-to-4.2.0 pyup-update-zope.deferredimport-3.5.3-to-4.3 pyup-update-zope.dottedname-4.2-to-4.3 pyup-update-zope.error-3.7.4-to-4.5.0 pyup-update-zope.event-3.5.2-to-4.4 pyup-update-zope.exceptions-3.6.2-to-4.3 pyup-update-zope.filerepresentation-3.6.1-to-4.2.0 pyup-update-zope.globalrequest-1.2-to-1.5 pyup-update-zope.i18n-4.2.0-to-4.6.1 pyup-update-zope.i18nmessageid-4.1.0-to-4.3.1 pyup-update-zope.interface-4.4.3-to-4.6.0 pyup-update-zope.intid-3.7.2-to-4.3.0 pyup-update-zope.keyreference-3.6.4-to-4.2.0 pyup-update-zope.lifecycleevent-3.6.2-to-4.3 pyup-update-zope.location-3.9.1-to-4.2 pyup-update-zope.pagetemplate-4.2.1-to-4.4.1 pyup-update-zope.processlifetime-1.0-to-2.3.0 pyup-update-zope.proxy-4.3.0-to-4.3.1 pyup-update-zope.ptresource-3.9.0-to-4.2.0 pyup-update-zope.publisher-4.3.2-to-5.0.1 pyup-update-zope.ramcache-1.0-to-2.3 pyup-update-zope.schema-4.5.0-to-4.9.3 pyup-update-zope.security-4.1.1-to-4.3.0 pyup-update-zope.sendmail-3.7.5-to-4.2 pyup-update-zope.sequencesort-3.4.0-to-4.1.2 pyup-update-zope.site-3.9.2-to-4.2.2 pyup-update-zope.size-3.4.1-to-4.3 pyup-update-zope.structuredtext-3.5.1-to-4.3 pyup-update-zope.tal-3.5.2-to-4.4 pyup-update-zope.tales-3.5.3-to-4.3 pyup-update-zope.testbrowser-3.11.1-to-5.3.1 pyup-update-zope.testing-3.9.7-to-4.7 pyup-update-zope.testrunner-4.4.4-to-4.9 pyup-update-zope.traversing-4.1.0-to-4.3.1 pyup-update-zope.viewlet-3.7.2-to-4.2 pyup-update-zope2-2.13.27-to-2.13.28 static_html summary-box-tile use_elm websockets
Nothing to show
Clone or download
Latest commit a196d7b Dec 2, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
api Upgrade plone.restapi to 3.5.0. Nov 11, 2018
docs Add several logos to the repo Dec 1, 2018
g-api Renamed to Volto. Oct 4, 2018
include Plone Bug Sep 21, 2018
locales Renamed to Volto. Oct 4, 2018
public Fixed i18n config. Oct 3, 2018
src Added subrequests to search and get content actions. Nov 12, 2018
tests Merge branch 'master' into tile-test Nov 11, 2018
theme Fix missing buttons on RichText tiles and styles on buttons Oct 24, 2018
.babelrc Add babelrc. Oct 3, 2018
.dockerignore Fixing docker image Sep 18, 2018
.eslintignore feat: Initial commit May 15, 2016
.eslintrc Fix dangling comma Oct 3, 2018
.gitattributes Add .gitattributes file to avoid most Changelog merge conflicts Nov 12, 2018
.gitignore Remove unused. Oct 3, 2018
.nvmrc Upgrade to Node 8.14.0 Dec 1, 2018
.travis.yml Install node 8.14.0 on Travis. Dec 2, 2018
.yarnrc Upgraded dependencies. Apr 13, 2017
CHANGELOG.md Merge pull request #579 from plone/node-8.14.0 Dec 2, 2018
CNAME Add CNAME file. Sep 20, 2018
Dockerfile Comment out installation of libpng12-dev in Docker container. Dec 2, 2018
Jenkinsfile Build frontend on Jenkinsfile. Sep 19, 2018
LICENSE.md Switch to MIT license. Jan 4, 2018
Makefile Add event and folder rf tests. Nov 11, 2018
README.md Install node 8.14.0 on Travis. Dec 2, 2018
babel.js Fixed i18n script. Oct 3, 2018
entrypoint.sh Replace Docker prod Oct 23, 2018
jest-svgsystem-transform.js Mock jest tests with a special transform for the svg from the Pastana… Jul 14, 2018
jsdoc.json feat: Initial commit May 15, 2016
package.json Upgrade to Node 8.14.0 Dec 1, 2018
pip-selfcheck.json Plone Bug Sep 21, 2018
razzle.config.js This adds MiniCssExtractPlugin.loader and prevents FUOC in production… Oct 23, 2018
styleguide.config.js Renamed to Volto. Oct 4, 2018
test-requirements.txt Fix buildout security warning. Nov 10, 2018
test-setup.js Fix tests, changes for new router mainly, others due to use the lates… Oct 3, 2018
yarn.lock Layout compatibility with guillotina Nov 8, 2018

README.md

Volto

Build Status Coverage Dependencies Dev Dependencies NPM

Documentation

A training on how to create your own website using Volto is available as part of the Plone training at https://training.plone.org/5/volto/index.html.

Installation

Prerequisites

Install dependencies

$ yarn

Install backend

$ cd api
$ ./bootstrap.sh

Development

Run backend

$ cd api
$ ./bin/instance fg

or

$ docker-compose -f api/docker-compose.yml up

Run frontend

$ yarn start

Browsing

Go to http://localhost:3000 in your browser.

Testing

$ yarn test

Acceptance testing

$ make test-acceptance

Alternatively individual acceptances test case files can be run with a pure Robot Framework virtual environment, assuming that backend and frontend is running

$ docker-compose -f api/docker-compose.yml up
$ yarn && yarn build && RAZZLE_API_PATH=http://localhost:55001/plone yarn start:prod

$ virtualenv robotenv --no-site-packages
$ robotenv/bin/pip install robotframework robotframework-seleniumlibrary robotframework-webpack
$ robotenv/bin/pybot tests/test_login.robot

Another alternative for developing Robot Framework acceptane tests is to use Jupyter notebook

$ make -C api/jupyter

Static Code Analysis

Prettier

Please refer this link for all usages.

CLI

Run Prettier through the CLI with this script. Run it without any arguments to see the options.

To format a file in-place, use --write. You may want to consider committing your code before doing that, just in case. prettier [opts] [filename ...] In practice, this may look something like:
prettier --single-quote --trailing-comma es5 --write "{app,__{tests,mocks}__}/**/*.js"

Using Plugins

Plugins are automatically loaded if you have them installed in your package.json. Prettier plugin package names must start with @prettier/plugin- or prettier-plugin- to be registered. If the plugin is unable to be found automatically, you can load them with:

  1. The CLI, via the --plugin flag:

prettier --write main.foo --plugin=./foo-plugin

  1. Or the API, via the plugins field:
  parser: "foo",
  plugins: ["./foo-plugin"]
});
Pre commit hook

You can use Prettier with a pre-commit tool. This can re-format your files that are marked as "staged" via git add before you commit.

  1. Lint staged Use Case: Useful for when you need to use other tools on top of Prettier (e.g. ESLint)

Install it along with husky:

yarn add lint-staged husky --dev

and add this config to your package.json:

{
  "scripts": {
    "precommit": "lint-staged"
  },
  "lint-staged": {
    "*.{js,json,css,md}": ["prettier --write", "git add"]
  }
}
  1. Pretty-quick Use Case: Great for when you want an entire file formatting on your changed/staged files.

yarn add pretty-quick husky --dev

and add this config to your package.json:

{
  "scripts": {
    "precommit": "pretty-quick --staged"
  }
}

More Precommit hooks can be found here

Running Guillotina Tests

First, start up Guillotina:

docker-compose -f g-api/docker-compose.yml up -d

Then, run the tests:

PYTHONPATH=$(pwd)/tests_guillotina env/bin/pybot -v BROWSER:headlesschrome tests_guillotina;

License

MIT License. Copyrights hold the Plone Foundation. See LICENSE.md for details.