https://github.com/mystery-house/django-busker
A Standalone app for creating and redeeming digital download codes in your Django project
https://github.com/mystery-house/django-busker
art asset-management content-creation content-creators content-curation content-management django music python3
Last synced: 5 months ago
JSON representation
A Standalone app for creating and redeeming digital download codes in your Django project
- Host: GitHub
- URL: https://github.com/mystery-house/django-busker
- Owner: mystery-house
- License: mit
- Created: 2020-08-23T17:27:05.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-03-06T23:48:27.000Z (about 3 years ago)
- Last Synced: 2024-05-21T20:13:23.057Z (11 months ago)
- Topics: art, asset-management, content-creation, content-creators, content-curation, content-management, django, music, python3
- Language: Python
- Homepage:
- Size: 141 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: LICENSE.txt
Awesome Lists containing this project
README
======
Busker
======
Busker is a Django app for managing and redeeming codes that allow end-users to download digital assets
(Music, E-Books, High-resolution artwork, etc.)Demo
====
You can test-drive the code redemption workflow by visiting ``_ and entering the code ``AM1FDEF``, or by going directly to ``_.Pre-requisites
==============* A Django 3 installation (Will probably work fine in 2.x but has not been tested)
* Python 3Installation
============pip
---
To install the latest release of Busker with pip, use::pip install git+https://github.com/tinpan-io/django-busker.git#egg=django_busker
To install a specific tag with pip, use the following format::
pip install git+https://github.com/tinpan-io/django-busker.git@[tag]#egg=django_busker
...where ``[tag]`` is the version you want to use; for example, to install version 0.7.0::
pip install git+https://github.com/tinpan-io/[email protected]#egg=django_busker
Local
-----
To install from a checked out copy of the repository, ``cd`` into the top-level
directory and run::python setup.py install
Django Setup
=====
Edit your Django ``settings.py`` module and add three new items to the ``INSTALLED_APPS`` list::'imagekit',
'markdownfield',
'busker'You will also need to make sure that ``'django.contrib.sessions.middleware.SessionMiddleware'`` is enabled in ``MIDDLEWARE`` (It's included by default in a new boilerplate Django project, so you probably won't need to change anything here.)
Next, add busker's URLs to your Django project's main ``urls.py`` module::
path('busker/', include('busker.urls', namespace='busker')),
(The first argument to ``path()`` can be whatever you like, but make sure ``namespace`` is set to ``'busker'``.
For uploaded images to display correctly you also will need ``MEDIA_ROOT`` and ``MEDIA_URL`` configured in your ``settings.py`` module. (See for a way to tweak your project ``urls.py`` to serve media when developing locally.)
When deploying to production, you'll need to run the ``collectstatic`` admin command.
Finally, in the terminal, run busker's migrations from the top level of the Django project::
python manage.my migrate busker
If you log into the Admin UI you should now see several new models.
Models
======These are the models defined by busker, in the order you'll probably want to create them:
Artist
------Represents an artist/creator.
DownloadableWork
----------------Represents an item that will be accessible to people with valid download codes; for example, a zip file containing an album of music. (Or, several zip files of the same album in different formats.)
File
----One or more File objects can be linked to a DownloadableWork
Batch
-----Batches automatically generate batches of unique codes for a given DownloadableWork. Note the 'export csv' option in the Batch admin view.
DownloadCode
------------DownloadCode objects represent the actual codes users can use to access files. They're generally auto-created when a new Batch is saved. Note the 'export csv' option in the DownloadCode admin view.
Signals
=======
Busker provides the following signals which may be useful:``busker.signals.code_post_redeem(sender, request, code)``
This signal is sent whenever a DownloadCode is redeemed, *after* its ``times_used`` and ``last_used_date`` fields have been updated but *before* the user is presented with the download page. It sends the `request` object and the `DownloadCode` object being redeemed.``busker.signals.file_pre_download(sender, request, file)``
This signal is sent whenever a user clicks on a link to download a file, *after* the File object has been loaded but *before* the file is actually sent to the client. It sends the `request` object and the `File` object being redeemed.