Skip to content

Solvosoft/django-gentelella-widgets

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e5ab113 · Sep 22, 2023
Dec 21, 2022
Sep 5, 2022
Sep 22, 2023
Sep 22, 2023
Jul 20, 2023
Jun 18, 2023
Jul 20, 2023
Mar 16, 2023
Jun 16, 2020
Jun 18, 2023
Jun 18, 2023
Jul 20, 2023
Jul 2, 2023
Aug 16, 2022
Jul 20, 2023
Jul 20, 2023
Oct 19, 2022
Jul 2, 2023
Sep 30, 2022

Repository files navigation

Django Gentelella widgets

This app helps you to integrate Django apps with Gentelella building extra widgets for forms and speciall methods to render forms in templates.

See Documentation

Installation

Installing from repository (Updated frequently, most of great functionalities are not in pip yet ).

pip install git+https://github.com/luisza/django-gentelella-widgets.git#egg=djgentelella

An stable version on pip, but not all available widget are in this release (new release comming soon)

pip install djgentelella

Configure your settings

INSTALLED_APPS = [ ..
    'djgentelella',
    'rest_framework',
    'markitup',
]
MARKITUP_FILTER = ('markdown.markdown', {'safe_mode': True})
MARKITUP_SET = 'markitup/sets/markdown/'
JQUERY_URL = None

Run migrations

python manage.py migrate

Create statics files downloading from internet (you need to install requests for this step).

pip install requests
python manage.py loaddevstatic

Add djgentelella urls in your project urls.py file

from djgentelella.urls import urlpatterns as djgentelellaurls

urlpatterns = djgentelellaurls + [
                ...
              ]

Usage

In forms

from djgentelella.forms.forms import GTForm
from djgentelella.widgets import core as genwidgets

class myform(GTForm, forms.ModelForm):
    class Meta:
        model = MyObject
        fields = '__all__'
        widgets = {
            'name': genwidgets.TextInput,
            'borddate': genwidgets.DateInput,
            'email': genwidgets.EmailMaskInput
        }

In templates working with forms

{{ form.as_plain }}
{{ form.as_inline }}
{{ form.as_horizontal }}

In templates using base template

{% extends 'gentelella/base.html' %}

Take a look this file to note the template block that you can overwrite

Test

To run the all test use:

cd demo
python manage.py test

To run the responsive test use:

cd demo
python manage.py test demoapp.tests.selenium.responsive

Run the demo

cd demo
python manage.py migrate
python manage.py createdemo
python manage.py demomenu

And More see demo app.

Notes for development

base.js is autogenerated so you need to call

python manage.py createbasejs

Remember update the package version before make deploy it on server.

sudo apt install node-babel-cli npm webpack

Translation

To add a new translation for a word there are two options:

django-admin makemessages --all

This command adds words that are inside django templates to locale/es/LC_MESSAGES/django.po, there these words can be translated.

To add a word you can use the following syntax.

{% trans "new_word" %}

For words used in JavaScript files, the following command must be executed.

django-admin makemessages -d djangojs -l es  --ignore *.min.js

This command adds words that are inside the gettext js function, to locale/es/LC_MESSAGES/djangojs.po, there these words can be translated.

Here is an example of gettext implementation:

alert(gettext("new_word"))