Pragmatic tools and utilities for Django projects
Project description
Pragmatic tools and utilities for Django projects
Tested on Django 1.5.
Requirements
Django
Some utilities require additional libraries as:
django_filters
fpdf
Pillow
pyBarcode
Installation
Install python library using pip: pip install django-pragmatic
Add pragmatic to INSTALLED_APPS in your Django settings file
Usage
Templates
- pragmatic/helpers/breadcrumbs.html
Template helper for django-breadcrumbs app
- pragmatic/helpers/confirm_delete.html
Form for delete confirmation
- pragmatic/helpers/messages.html
Template helper for django messages framework
- pragmatic/helpers/pagination.html
Template helper for paginating objects in ListViews
- pragmatic/helpers/pagination-listview.html
Template helper for paginating objects in ListViews
Context processors
- def date_formats(request)
Returns a lazy ‘date formats’ context variables DATE_FORMAT_JS, DATE_FORMAT_TAG, DATE_FORMAT_FULLMONTH_TAG, from settings file.
- def installed_apps(request)
Returns a lazy ‘INSTALLED_APPS’ context variable.
Decorators
- def permissions_required(app_label, login_url=None, raise_exception=False)
Decorator for views that checks whether a user has at least one app permission enabled, redirecting to the log-in page if necessary. If the raise_exception parameter is given the PermissionDenied exception is raised and app label of missing permission is stored in user instance.
- def permission_required(perm, login_url=None, raise_exception=False)
Decorator for views that checks whether a user has a particular permission enabled, redirecting to the log-in page if necessary. If the raise_exception parameter is given the PermissionDenied exception is raised and missing permission is stored in user instance.
- def receiver_subclasses(signal, sender, dispatch_uid_prefix, **kwargs)
A decorator for connecting receivers and all receiver’s subclasses to signals.
Fields
- class RangeField(forms.Field)
Form field which expects input to be a number or number range (2 numbers divided with ‘-‘).
- class MultiSelectField(models.Field)
Model field which stores multiple choices as a comma-separated list of values, using the normal CHOICES attribute.
- class MultiSelectFormField(forms.MultipleChoiceField)
Form field for model field above (MultiSelectField).
- class TruncatedModelChoiceField(forms.ModelChoiceField)
ModelChoiceField is a form field which truncates overflowed characters from instance label and adds ‘…’ instead of them.
Filters
- class TruncatedModelChoiceFilter(forms.ModelChoiceField)
Filter field for TruncatedModelChoiceField.
- class OneFieldRangeFilter(django_filters.Filter)
Filter field for RangeField.
Helpers
- def base64_to_file(content, filepath):
Stores base64 encoded content to file.
- def round_to_n_decimal_places(value, n)
Returns number rounded to n decimal places.
- def generate_hash(length=5)
Returns random generated string
- def get_subclasses(classes, level=0)
Return the list of all subclasses given class (or list of classes) has.
- def barcode(code, args=None)
Returns barcode as string encoded in base64 format.
Mixins
- class ReadOnlyFormMixin(forms.BaseForm)
Adds ‘readonly and ‘disabled’ attributes to fields specified in read_only form attribute.
- class DeleteObjectMixin(object)
Mixin for object delete confirmation. Implement get_parent() method or get_success_url() and get_back_url() methods instead.
- class PickadateFormMixin(object)
Mixin which fixes pickadate.js inputs and adds data-value attribute to them if you use your own date formats.
- class FPDFMixin(object)
Mixin helper for generating PDF outputs in Django using fpdf library.
Signals
def receiver_subclasses
Thirdparty
- class BarcodeImageWriter(ImageWriter)
Fixed version of barcode.writer.ImageWriter.
- class GroupedCheckboxSelectMultiple(CheckboxSelectMultiple)
Advanced form field widget for grouping multiple choices into custom groups. Use it with static/js/grouped-checkboxes.js
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 django-pragmatic-0.9.7.tar.gz
.
File metadata
- Download URL: django-pragmatic-0.9.7.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ba9a79bd88ead1f47d0bc6c7867c84697bdd03787970dc988c7fe134cf2f44e |
|
MD5 | 45a7b74e618e9fc7c1a9883a00918875 |
|
BLAKE2b-256 | d7de7dc13ac42ed076807ff03afec14acbf4bfbd3074867b70cd71318cc2ead9 |