# Django Semantic UI
Easy python package that allow install, configure and use Semantic UI Framework with a Django project (Python 3.x).

### Requirements
- npm (last stable version)
- Python 3.6.x
- Django 2.x.x

## Installing
1) Install gulp (CLI), the version 3.9.1 is the available to work with Semantic UI Framework.
```shell
$ sudo npm install -g gulp@3.9.1
```

2) Install the django2-semantic-ui package:
```shell
$ pip install django2-semantic-ui
```

3) Configure django2-semantic-ui in the settings.py:
```python
INSTALLED_APPS = [
    ...,
    'django_semantic_ui',
]
```

4) Running the install command
```shell
$ python manage.py semantic_ui install
```
**NOTE:** You need to define the settings required to install semantic-ui module, see: [Install Semantic](https://semantic-ui.com/introduction/getting-started.html)
- You can use the follow options when the semantic-ui module is configured:
```shell
❯ Automatic (Use default locations and all components)

? We detected you are using NPM Nice! Is this your project folder? /home/franklinitiel/Documents/TSJ/projects/personal/python_tests/semanticui/static (Use arrow keys)
❯ Yes

? Where should we put Semantic UI inside your project? (semantic/) semantic
```

5) Running the gulp build command
```shell
$ python manage.py semantic_ui gulp_build
```

6) Add 'django.template.context_processors.static' to context_processors option on the TEMPLATES settings
```python
# settings.py
# TEMPLATES settings
'context_processors': [
    ...,
    'django.template.context_processors.static',
    ...,
]
```

7) Configure the static files and folder, see: [Managing static files](https://docs.djangoproject.com/en/2.1/howto/static-files/)
```python
STATIC_URL = '/static/'
```

8) Add CSS and JS to your django project
```html
{% load dsu %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Semantic UI Test</title>
    {% dsu_stylesheet_url %}
</head>
<body>
    <!-- Your HTML code -->
    {% dsu_jquery_url %}
    {% dsu_javascript_url %}
</body>
</html>
```

## Settings Production environment
- Configure the static files and folder, see: [Managing static files](https://docs.djangoproject.com/en/1.11/howto/static-files/)
```python
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
```
- And execute the collectstatic command
```shell
$ python manage.py collectstatic
```

## Additional settings
- GULP_VERSION by default is None, if you want to install a specific version of gulp module (local), you can use this settings, by example:
```python
# settings.py
GULP_VERSION = '3.9.1'
```
- SEMANTIC_UI_VERSION by default is None, if you want to install a specific version of semantic-ui module (local), you can use this settings, by example:
```python
# settings.py
SEMANTIC_UI_VERSION = '^2.4.2'
```
- SEMANTIC_DIRNAME by default is 'semantic'', if you have defined a custom dirname for the JS and CSS files when the Semantic UI Framework was installed (step 4), you need to add it on this settings.
```python
# settings.py
SEMANTIC_DIRNAME = 'semantic'
```
- DSU_JQUERY_URL by default is 'https://code.jquery.com/jquery-3.1.1.min.js', if you have defined a custom path to you jquery, so, you can use this template tag.
```python
# settings.py
DSU_JQUERY_URL = '...your jquery path...'
```

## Uninstall django-semantic-ui
- You can uninstall Semantic UI Framework and Gulp (local version) using the follow command:
```shell
$ python manage.py semantic_ui uninstall && pip uninstall django2-semantic-ui
```

## Releases notes:

- 1.0.0: Initial and beta version (only installation and settings).
- 1.0.1: New settings added on the README.md file
- 1.1.0: Logic updated to install / uninstall django-semantic-ui, new settings added.
- 1.1.1: README.md updated
- 1.1.2: README.md updated
- 1.2.0: New templatetags added to load the javascripts and stylesheets files
- 1.2.1: README.md updated, bugs fixed to execute the command "python manage.py runserver" after installed.
- 1.2.2: Bug fixes execute the command "pytho manage.py runserver"