Django Gentelella widgets
############################

This app helps you to integrate Django apps with `Gentelella <https://colorlib.com/polygon/gentelella/index.html>`_ building extra widgets for forms and speciall methods to render forms in templates.

See `Documentation <https://django-gentelella-widgets.readthedocs.io/>`_

Installation
________________

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

.. code:: bash

   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)

.. code:: bash

   pip install djgentelella


Configure your settings

.. code:: bash

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



Run migrations 

.. code:: bash

    python manage.py migrate

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

.. code:: bash

     pip install requests
     python manage.py loaddevstatic

Add djgentelella urls in your project urls.py file

.. code:: bash

    from djgentelella.urls import urlpatterns as djgentelellaurls

    urlpatterns = djgentelellaurls + [
                    ...
                  ]
     
Usage
_________


In forms 

.. code:: python

    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

.. code:: html

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

In templates using base template

.. code:: html

    {% 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:

.. code:: bash

    cd demo
    python manage.py test


To run the responsive test use:

.. code:: bash

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


Run the demo
---------------

.. code:: bash

    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

.. code:: bash

    python manage.py createbasejs

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


sudo apt install node-babel-cli npm webpack
