A Django app to accept literary submissions.
Project description
Multi-format submission accepting platform.
Quick start
Add “submitify” to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [ ... 'submitify', ]
Ensure that you have django.contrib.auth added as an application as well.
Include the submitify URLconf in your project urls.py like this:
url(r'^submitify/', include('submitify.urls')),
Run python manage.py migrate to create the submitify models.
Start the development server.
Visit http://127.0.0.1:8000/submitify/ to see the app.
Notes for the pluggable application
The standalone application is basically ready to use as one would normally run a Django app, but the pluggable application has a few more things to note.
Submitify hooks into the Django permissions system. Creating a new call-for-submissions requires the submitify.add_call permission, so publishers should be added to a group with that permission.
Submitify is designed, loosely, for a site using Bootstrap, so elements are classed as such, but this is designed to not be a hard requirement. To that end, some styles are defined within the templates.
Applications must implement the ability to add users as readers/invite users as writers. A form for doing such is available at submitify.forms.InviteForm. The view should look something like this:
def view_user(request, username=None): user = get_object_or_404(User, username=username) ... invite_calls_reading = [] invite_calls_writing = [] if request.user.is_authenticated and request.user != user: invite_calls_reading = request.user.submitify_calls_editing.filter( ~Q(readers__in=[user]), status__in=[ Call.NOT_OPEN_YET, Call.OPEN ]) invite_calls_writing = request.user.submitify_calls_reading.filter( status__in=[ Call.NOT_OPEN_YET, Call.OPEN, ], invite_only=True) invite_reader_form = InviteForm(initial={ 'user': user, }) invite_reader_form.fields['calls'].queryset = invite_calls_reading invite_writer_form = InviteForm(initial={ 'user': user, }) invite_writer_form.fields['calls'].queryset = invite_calls_writing return render(request, 'view_profile.html', { ... 'invite_reader_form': (invite_reader_form if len(invite_calls_reading) > 0 else None), 'invite_writer_form': (invite_writer_form if len(invite_calls_writing) > 0 else None), })
The template should look something like:
{% if invite_reader_form %} <form method="post" action="{% url 'submitify:invite_reader' %}"> {% csrf_token %} {{ invite_reader_form.user }} <div class="form-group"> <label for="id_calls">Invite user as a reader to...</label> {{ invite_reader_form.calls }} </div> </form> {% endif %} {% if invite_writer_form %} <form method="post" action="{% url 'submitify:invite_writer' %}"> {% csrf_token %} {{ invite_writer_form.user }} <div class="form-group"> <label for="id_calls">Invite user as a writer to...</label> {{ invite_writer_form.calls }} </div> </form> {% endif %}
See the standalone application for more information.
Further information
- Source, issues, and further information:
- Author
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
Built Distribution
File details
Details for the file django-submitify-0.0.12.tar.gz
.
File metadata
- Download URL: django-submitify-0.0.12.tar.gz
- Upload date:
- Size: 29.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77ee56fe763c9fe1b40b9e28d9e7e636889c4eb33d32947394c439bb0787931f |
|
MD5 | 9b0ef35004775a5566e88d2e84ed8be5 |
|
BLAKE2b-256 | 9f227253d35d933451e8cf6e801ae6f24bc0a6690e09b5db41b34b9e57da272f |
File details
Details for the file django_submitify-0.0.12-py3-none-any.whl
.
File metadata
- Download URL: django_submitify-0.0.12-py3-none-any.whl
- Upload date:
- Size: 51.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 484a297b97ee3b030e92b43a6a9d83da2388ad802c6f7e54df01eaf85bf7a4de |
|
MD5 | 07281ef0e7f6b870ced63f5c963f33ee |
|
BLAKE2b-256 | 5ef3595c26568d627f0dc79942aea5a96d0f0011f509bde028fd8ed6f24fa5b9 |