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
Hashes for django_submitify-0.0.12-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 484a297b97ee3b030e92b43a6a9d83da2388ad802c6f7e54df01eaf85bf7a4de |
|
MD5 | 07281ef0e7f6b870ced63f5c963f33ee |
|
BLAKE2b-256 | 5ef3595c26568d627f0dc79942aea5a96d0f0011f509bde028fd8ed6f24fa5b9 |