Skip to main content

Django Onepage Application Management

Project description

Django Onepage Application

Project description

Django Onepage is set of functionality that can help you to convert your django application to onepage application. These include table listing for every model under respective module, hierarchical navbar for module and model management, Onepage add, change, delete operations without page loading with good interaction.

Settings

Django Onepage is a package that can reduce your page loading by 90%++, Just need to install the package, add package to your settings INSTALLED_APPS and update TEMPLATES tag to APP_DIRS is True

INSTALLED_APPS = [
    ...
    'onepage',
    '''
]

TEMPLATES = [
    {
        ...
        'APP_DIRS': True,
        ...
    },
]

Add Model to Onepage Pattern

Add pattern for your model in any urls file, that can map your model for Onepage CRUD. we suggest to use django ModelForm instead of django Form for add and change entry. See django model form documentation to know more about django form binding for model. We use this forms to add and change database entry from your onepage table, example bellow,

# https://docs.djangoproject.com/en/3.2/topics/forms/modelforms/

from onepage.urls import patterns, add_pattern
from .models import Book, Consumer
from .forms import BookAddUpdateForm, ConsumerAddForm, ConsumerUpdateForm

# If you don't pass any form for change entry, form for add entry will be execute for change entry
# You can pass a validator optionally to check in every action from onepage

# add_pattern(model_name, form_for_add_entry, form_for_change_entry, validator)

add_pattern(Book, BookAddUpdateForm)
add_pattern(Consumer, ConsumerAddForm, ConsumerUpdateForm)

urlpatterns = [
    ...
] + patterns

Add Pattern to your template

In your base template include onepage/nav.html or you can use onepage/base.html also to get job done. This nav will generate and give you basic navbar to click and enjoy the simplicity.

In your base template include nav file as like

{% include 'onepage/nav.html' %}

Or you can simply use onepage base template, it will include your nav.html also

{% include 'onepage/base.html' %}

Custom Navigation & Links

If you don't want to add onepage rendered navigation bar through onepage/nav.html, you can right custom navigation and links to handle onepage application. Let's look at the topic below to more about this.

here {{module_name}} is your app name which containing your desired model, and model_name is your desired model name, which you want to initialize.

View Reference

View reference like admin panel CRUD for model can be created by doing this,

<li id="{{module_name}}-view-{{model_name}}" class="ajax-four-act-handler"
    data-props="{{module_name}}-view-{{model_name}}" data-r-kwargs="" data-keys="id,field_1,field_2"
>Model Verbose Name</li>

Create Reference

Create reference for getting executed and show a create window for model,

<button data-props="{{module_name}}-add-{{model_name}}"
    class="btn btn-info-soft w-100p mb-2 me-1 ajax-four-act-handler-call-add-change-{{model_name}}"
>Add New {{model_name}}</button>

Update Reference

Update reference for getting executed and show an edit window for model, you have to follow a hierarchical guidelines.

<tr data-id="{{ item_id }}">
    <a data-method="GET"
        class="btn btn-success-soft btn-sm ajax-four-act-handler-call-add-change-{{model_name}}" 
         data-props="{{module_name}}-change-{{model_name}}"
    >Edit</a>
</tr>

Delete Reference

Delete reference for getting executed, also have to follow a hierarchical guidelines.

<tr data-id="{{ item_id }}">
    <a data-method="GET"
       class="btn btn-danger-soft btn-sm ajax-four-act-handler-call-add-change-{{model_name}}"
        data-props="{{module_name}}-delete-{{model_name}}"
    >Delete</a>
</tr>

Validator

Validator is used to validate query request from user, when you pass any validator to add_pattern. This validator will be called in view function for add, change, view, delete.

from onepage.validator import BasicValidator

class CustomValidator(BasicValidator):
    def is_valid(self):
        return False

add_pattern(Book, BookAddUpdateForm, validator=CustomValidator)

Author

django-onepage is an open source library for Python. Initially developed by Nj Nafir Nj Nafir Github

Contribute

Support

If you are having issues, please let us know. We have a mailing list located at: njnafir@gmail.com

License

The project licensed under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-onepage-1.2.2.tar.gz (4.3 MB view details)

Uploaded Source

Built Distribution

django_onepage-1.2.2-py3-none-any.whl (4.4 MB view details)

Uploaded Python 3

File details

Details for the file django-onepage-1.2.2.tar.gz.

File metadata

  • Download URL: django-onepage-1.2.2.tar.gz
  • Upload date:
  • Size: 4.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for django-onepage-1.2.2.tar.gz
Algorithm Hash digest
SHA256 9499045971f1c453101cbccf32f9c7adeb1d0b9d81f407a34c3b2f54caa5c8f1
MD5 a542391f5ba28206b89f41cb3dea3588
BLAKE2b-256 e618f2841cf68591f36972c8b5ff1727e3180636276b84d69bc3c6c3973a86c6

See more details on using hashes here.

File details

Details for the file django_onepage-1.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for django_onepage-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 06e258cc92d57a52bd56f75f6cf8561dcb16073e3f22220a05f68428d1524a4c
MD5 c50a2a6fad79e55a8dafd9707f543ed2
BLAKE2b-256 d7a186cf9077e4c54f17e039968f58966cb5d9907a9c91c99be12afc3156060d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page