Skip to content

EditionOpenAccess/eoa-1.5

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
August 31, 2020 11:49
May 27, 2020 17:02
res
December 6, 2019 15:33
July 14, 2021 20:06
src
February 5, 2021 19:44
November 29, 2019 15:46
November 17, 2021 16:48
November 18, 2021 08:35

Edition Open Access 1.5

Source code for the Edition Open Access website. Publications are provided in a number of different formats:

  • online HTML version
  • PDF
  • Ebook (EPUB)

Installation

In order to provide a consistent environment we are using docker. A set of python scripts is used for automatisation. Installing and running the project work without Docker or the scripts is possible, but not recommended. In this case you are on your own. Dependencies to other git repositories are handled using git_deps_py.

Configuration

  • Environment variables: see file .env

    These variables are available inside the docker-compose.yaml file and are also loaded into the python scripts. (The .env file is initially created with default settings by the init.py script)

  • Django settings: see src/eoa/settings.py

    For further information please check the django documentation.

Prerequisites

Initialise the Repository

$ git_deps_py
$ ./scripts/init.py --build

This will pull remote repositories and resources, initialize the database, etc. Force recreating the docker image by adding --build e.g. if Dockerfile or requirements.txt has changed.

Import data

Initialize CMS pages

The dummy fixture contains the default setup for CMS pages. Also a CMS superuser with username 'test' and password 'test' (don't use this in production !).

$ cp fixtures/cms_dummy.json res/fixtures/
$ ./scripts/init.py --skip-db
$ ./scripts/run.py && ./scripts/exec_in_container.py
$ $ python manage.py loaddata $RES_DIR/fixtures/cms_dummy.json
$ $ exit
$ ./scripts/stop.py

Import Publications

In order to publish a publication on the platform, the following 2 steps are necessary:

  1. First you have to compile your publication to "django", using EOASkripts

  2. After that you have to import it to the platform.

For the example publication, this process goes as follows:

  1. Compile the example

Compile the example file found in eoa-publication-model. For other examples containing TEI-XML consult https://github.molgen.mpg.de/EditionOpenAccess/EOASkripts#the-tei-workflow-tei---pdf-django-epub.

$ cd example_import
$ git_deps_py --store-dir ../dependencies
$ cd dependencies/EOASkripts
$ ./scripts/run.py && ./scripts/exec_in_container.py
$ $ process_eoa_latex.py input/example/124_eoatex
$ $ exit
$ ./scripts/stop.py
$ cd ../../../
  1. Import example into the platform

After you have compiled the publication to "django", you might want to import it into the platform.

$ mkdir res/publications
$ cp -r example_import/EOASkripts/runtime/output/124_eoatex/django res/publications/example
$ ./scripts/init.py --skip-db
$ ./scripts/run.py && ./scripts/exec_in_container.py
$ $ python manage.py publicationimport $RES_DIR/publications/example
$ $ exit

Visit http://localhost:8001/ for the main site and http://localhost:8001/studies/124/index.html for the publication. Go to http://localhost:8001/admin/login/ to access the Django administration pages.

That's all.

Stop the container with

$ ./scripts/stop.py

Configure Project specific Information

  • You might want to tweak the CMS pages: log in to the CMS and do it

  • You might want to configure organisation information (org. name, logo, ...):

    1. edit res/custom_config/*
    2. $ ./scripts/init.py --skip-db
  • You might want to add your organisations logo, favicon etc:

    Copy them into res/static/custom_static/. Files in this directory overwrite default files with the same name:

      $ cp <my_icon> res/static/custom_static/
      $ ./scripts/init.py --skip-db
    

    TODO: list images that one typically wants to overwrite

REMARK

The templates expect some pages to exist in the CMS:

  • Introduction Page (id: 'introduction')
  • Contact (id: 'contact')
  • Imprint (id: 'imprint')

Deleting those might break things.

Run the Webserver

$ ./scripts/run.py

The webpage can now be explored in your local browser.

Stop the Webserver

$ ./scripts/stop.py

Run Command in the Webserver container

$ ./scripts/exec_in_container.py [-- CMD ...]

Clean the Repository

$ ./scripts/exit.py

This should remove all remote repositories and resources not part of this repository. Docker images are not deleted though.

Export Data

In order to export CMS content, execute:

$ ./scripts/run.py && ./scripts/exec_in_container.py 'python manage.py dump_cms'
$ cp runtime_data/fixtures/* fixtures/

Installation for Production (TODO)

Not documented yet. It might be necessary to tweak the django settings, among other adjustments.

Further development of Django applications

In order to develop and enhance existing Django applications, do the following:

  • Following https://pip.readthedocs.io/en/1.1/requirements.html#requirements-file-format, the -e option in the requirements.txt file will install the Django applications in an accessible place
  • run ./scripts/run.py --build to update the installation.
  • In order to deploy the development, update the corresponding repository, commit and push and insert the commit hash in the requirements.txt.

About

Edition Open Access Website - new webdesign, old publication format

Resources

License

Stars

Watchers

Forks

Releases

No releases published