Molo is a set of tools for publishing mobi sites with a community focus.
Project description
Molo
Scaffold a site using Molo
Molo is a set of tools for publishing mobi sites with a community focus. It scaffolds a Django application for you with sensible defaults, packages and configuration to help you get going as soon as possible:
The goal of Molo is to provide a solid base of proven, stable packages that help Praekelt Foundation and partners to deliver on project scope:
$ pip install molo.core $ molo scaffold myapp $ cd myapp/ $ ./manage.py migrate $ ./manage.py createsuperuser $ ./manage.py runserver
Open the sample site in your browser at http://localhost:8000/ and the CMS at http://localhost:8000/admin/.
Scaffolding a site in an existing repository
It’s not always desirable to create a new directory for an application, especially when scaffolding an application for a repository that’s already been created. Specifically for that Molo allows a second argument for the directory.
To scaffold an application called myapp in the current directory do:
$ molo scaffold myapp .
Specifying extra requires
Molo in itself is not expected to be enough to deliver on a client request. During scaffolding use the --require commandline parameter to include more libraries that are required for installation:
$ molo scaffold myapp --require=django-contrib-comments
Adds the django-contrib-comments to the generated requirements file which is read by the generated package’s setup.py file.
Multiple requires can be specified on the command line:
$ molo scaffold myapp --require=django-contrib-comments \ --require=molo.profiles
Automatically adding installed apps
If you’re including a Django app chances are you’re going to want to add it to your INSTALLED_APPS settings as well as adding an entry to the generated urls.py file:
$ molo scaffold myapp --include=django_comments ^comments/
This results in the following urls.py entry:
url(r'^comments/', include('django_comments.urls', namespace='django_comments', app_name='django_comments')),
Molo, Django & settings files
What you have now is a standard Django application set up for normal development like outlined in the Django documentation. The only main difference is that your settings are Python modules found in the settings/dev.py and settings/production.py files in your applications folder. Both of these inherit settings from settings/base.py.
To create your own custom settings add a local.py file in the settings folder. The settings/dev.py will automatically include those settings for your local development environment.
Writing tests
Now develop your application and write tests for the features you add. Running your tests for Django works as you would expect:
$ ./manage.py test
What is bundled with Molo?
Basic feature phone template set.
Basic models for the following tree structure:
A site has languages
A language has a homepage
Articles are organised into sections.
Articles are composed from one or more blocks.
Blocks can be headings, paragraphs, images, lists or links to other pages.
Testing the Molo scaffolding tool
If you’re interested in working on or contributing to the code that does the scaffolding then clone this repository from the GitHub repository at http://github.com/praekelt/molo.
Install the requirement development & testing dependencies:
$ pip install -r requirements-dev.txt
And then run the full test suite with:
$ ./run-tests.sh
Pull requests are expected to follow Praekelt’s Ways Of Working.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file molo.core-2.4.0.tar.gz
.
File metadata
- Download URL: molo.core-2.4.0.tar.gz
- Upload date:
- Size: 38.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 450bd0de3fc297f87195cbec47102bdd90a937cde74440fea92db07cb34f5be4 |
|
MD5 | ccb58a3189bc366886f9a61d29555471 |
|
BLAKE2b-256 | 81529eef194a3e7b7024eed78f715b9292aa327a83071ef915705d7389eb72c2 |