Skip to content

Commit 9ba6af7

Browse files
committed
Release v1.0.4
1 parent a3132a8 commit 9ba6af7

File tree

9 files changed

+206
-26
lines changed

9 files changed

+206
-26
lines changed

.env

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
DEBUG=True
2+
3+
SECRET_KEY=<STRONG_KEY_HERE>

.gitignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ env
1010
/staticfiles/
1111

1212
#src
13-
*.sqlite*
13+
#*.sqlite*
1414

15-
.env
16-
yarn.lock
15+
#.env
16+
node_modules

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
# Change Log
22

3+
## [1.0.4] 2024-03-09
4+
### Changes
5+
6+
- Deprecate `distutils`
7+
- use `str2bool`
8+
- Update Deps
9+
- `requirements.txt`
10+
- Update README: [PRO Version](https://appseed.us/product/volt-dashboard-pro/django/), List features
11+
- `API`, **Charts**
12+
- **DataTables** (Filters, Export)
13+
- **Celery**
14+
- **Media Files Manager**
15+
- **Extended User Profiles**
16+
- Update [Custom Development](https://appseed.us/custom-development/) Section
17+
- New Pricing: `$3,999`
18+
319
## [1.0.3] 2023-05-30
420
### Changes
521

README.md

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,29 @@
33
Open-source **[Django Dashboard](https://appseed.us/admin-dashboards/django/)** generated by AppSeed op top of an iconic design. **Tabler** is a open-source admin template crafted by Codecalm agency. It comes with the basic components and set of pre-built pages required to lay the foundation for any application - Design provided by `Codecalm`.
44

55
- 👉 [Django Tabler](https://appseed.us/product/tabler/django/) - `Product page`
6-
- 👉 [Django Tabler](https://django-tabler.onrender.com/) - `LIVE Demo`
7-
-[Dark-Mode](https://django-tabler.onrender.com/?theme=dark) `Ready`
8-
- 🛒 **[Volt Django PRO](https://appseed.us/product/volt-dashboard-pro/django/)** - `Premium Version`
6+
- 👉 [PRO Version](https://appseed.us/product/volt-dashboard-pro/django/) - Volt BS5 Design
97

108
<br />
119

12-
> Features
10+
## Features
1311

14-
-`Up-to-date Dependencies`
15-
-`Design`: [Django Theme Tabler](https://github.com/app-generator/django-admin-tabler), UI Version `v1.0.0-beta19`
16-
-`Sections` covered by the design:
17-
-**Admin section** (reserved for superusers)
18-
-**Authentication**: `Django.contrib.AUTH`, Registration
19-
-**All Pages** available in for ordinary users
20-
-`Docker`
21-
- 🚀 `Deployment`
22-
- `CI/CD` flow via `Render`
12+
> `Have questions?` Contact **[Support](https://appseed.us/support/)** (Email & Discord) provided by **AppSeed**
2313
24-
<br />
14+
| Free Version | [PRO Version](https://appseed.us/product/volt-dashboard-pro/django/) | [Custom Development](https://appseed.us/custom-development/) |
15+
| --------------------------------------| --------------------------------------| --------------------------------------|
16+
|**Django 4.2.9** | **Everything in Free**, plus: | **Everything in PRO**, plus: |
17+
| ✓ Best Practices |**Premium Bootstrap 5 Design** |**1mo Custom Development** |
18+
| ✓ Bootstrap 5 Design |`OAuth` Google, GitHub |**Team**: PM, Developer, Tester |
19+
|`CI/CD` Flow via Render |`API`, **[Charts](https://django-volt-dashboard-pro.onrender.com/charts/)** | ✅ Weekly Sprints |
20+
|`Docker` |**[DataTables](https://django-volt-dashboard-pro.onrender.com/tables/)** (Filters, Export) | ✅ Technical SPECS |
21+
| - |**Celery** | ✅ Documentation |
22+
| - |**Media Files Manager** |**30 days Delivery Warranty** |
23+
| - |**Extended User Profiles** | - |
24+
| - |`Private REPO Access` | - |
25+
| - |**PRO Support** - [Email & Discord](https://appseed.us/support/) | - |
26+
| - | ✅ Deployment Assistance | - |
27+
| ------------------------------------ | ------------------------------------ | ------------------------------------|
28+
|[Product Page](https://appseed.us/product/tabler/django/) | 🚀 [LIVE Demo](https://django-volt-dashboard-pro.onrender.com/) | 🛒 `Order`: **[$3,999](https://appseed.gumroad.com/l/rocket-package)** (GUMROAD) |
2529

2630
![Django Tabler - Open-Source Starter crafted by AppSeed.](https://github.com/app-generator/dummy/assets/51070104/8e56d253-5196-4a8d-961c-bd6c2a01a6a7)
2731

core/settings.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import os, random, string
1414
from pathlib import Path
1515
from dotenv import load_dotenv
16+
from str2bool import str2bool
1617

1718
load_dotenv() # take environment variables from .env.
1819

@@ -27,13 +28,12 @@
2728
if not SECRET_KEY:
2829
SECRET_KEY = ''.join(random.choice( string.ascii_lowercase ) for i in range( 32 ))
2930

30-
# Render Deployment Code
31-
DEBUG = 'RENDER' not in os.environ
31+
# Enable/Disable DEBUG Mode
32+
DEBUG = str2bool(os.environ.get('DEBUG'))
33+
#print(' DEBUG -> ' + str(DEBUG) )
3234

33-
# HOSTs List
34-
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
35+
ALLOWED_HOSTS = ['*']
3536

36-
# Add here your deployment HOSTS
3737
CSRF_TRUSTED_ORIGINS = ['http://localhost:8000', 'http://localhost:5085', 'http://127.0.0.1:8000', 'http://127.0.0.1:5085']
3838

3939
RENDER_EXTERNAL_HOSTNAME = os.environ.get('RENDER_EXTERNAL_HOSTNAME')

db.sqlite3

128 KB
Binary file not shown.

requirements.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1-
django
2-
gunicorn
3-
python-dotenv
4-
whitenoise
1+
# Core
2+
django==4.2.9
3+
python-dotenv==1.0.1
4+
str2bool==1.1
5+
6+
# UI
57
django-admin-tabler==1.0.2
68

9+
# Deployment
10+
whitenoise==6.6.0
11+
gunicorn==21.2.0
12+
713
# psycopg2-binary
814
# mysqlclient

templates/pages/sign-in.html

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
{% extends 'layouts/base-auth.html' %}
2+
{% load static %}
3+
4+
{% block title %}Sign in - {% endblock title %}
5+
6+
{% block body %}d-flex flex-column{% endblock body %}
7+
8+
{% block content %}
9+
10+
<div class="page page-center">
11+
<div class="container container-tight py-4">
12+
<div class="text-center mb-4">
13+
<a href="{% url 'index' %}" class="navbar-brand navbar-brand-autodark"><img src="{% static 'static/logo.svg' %}" height="36" alt=""></a>
14+
</div>
15+
<div class="card card-md">
16+
<div class="card-body">
17+
<h2 class="h2 text-center mb-4">Login to your account</h2>
18+
19+
<p class="mb-2 text-center">
20+
<span>USER: test / Pass12__</span>
21+
<br />
22+
<span>ADMIN: admin / Pass12__</span>
23+
</p>
24+
25+
<form method="post">
26+
{% csrf_token %}
27+
28+
{% if form.non_field_errors %}
29+
{% for error in form.non_field_errors %}
30+
<span class="text-danger d-block mb-3">{{ error }}</span>
31+
{% endfor %}
32+
{% endif %}
33+
34+
{% for field in form %}
35+
{% if not field.name == 'password' %}
36+
<div class="mb-3">
37+
<label class="form-label">{{ field.label }}</label>
38+
{{ field }}
39+
</div>
40+
{% else %}
41+
<div class="mb-2">
42+
<label class="form-label">
43+
{{ field.label }}
44+
<span class="form-label-description">
45+
<a href="{% url 'forgot_password' %}">I forgot password</a>
46+
</span>
47+
</label>
48+
<div class="input-group input-group-flat">
49+
{{ field }}
50+
<span class="input-group-text">
51+
<a href="#" class="link-secondary" title="Show password" data-bs-toggle="tooltip"><!-- Download SVG icon from http://tabler-icons.io/i/eye -->
52+
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" /><path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" /></svg>
53+
</a>
54+
</span>
55+
</div>
56+
</div>
57+
{% endif %}
58+
{% endfor %}
59+
60+
<div class="mb-2">
61+
<label class="form-check">
62+
<input type="checkbox" class="form-check-input"/>
63+
<span class="form-check-label">Remember me on this device</span>
64+
</label>
65+
</div>
66+
<div class="form-footer">
67+
<button type="submit" class="btn btn-primary w-100">Sign in</button>
68+
</div>
69+
</form>
70+
</div>
71+
<div class="hr-text">or</div>
72+
<div class="card-body">
73+
<div class="row">
74+
<div class="col"><a href="#" class="btn w-100">
75+
<!-- Download SVG icon from http://tabler-icons.io/i/brand-github -->
76+
<svg xmlns="http://www.w3.org/2000/svg" class="icon text-github" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" /></svg>
77+
Login with Github
78+
</a></div>
79+
<div class="col"><a href="#" class="btn w-100">
80+
<!-- Download SVG icon from http://tabler-icons.io/i/brand-twitter -->
81+
<svg xmlns="http://www.w3.org/2000/svg" class="icon text-twitter" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c0 -.249 1.51 -2.772 1.818 -4.013z" /></svg>
82+
Login with Twitter
83+
</a></div>
84+
</div>
85+
</div>
86+
</div>
87+
<div class="text-center text-muted mt-3">
88+
Don't have account yet? <a href="{% url 'register' %}" tabindex="-1">Sign up</a>
89+
</div>
90+
</div>
91+
</div>
92+
93+
{% endblock content %}

templates/pages/sign-up.html

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
{% extends 'layouts/base-auth.html' %}
2+
{% load static %}
3+
4+
{% block title %}Sign up - {% endblock title %}
5+
6+
{% block content %}
7+
8+
<div class="page page-center">
9+
<div class="container container-tight py-4">
10+
<div class="text-center mb-4">
11+
<a href="{% url 'index' %}" class="navbar-brand navbar-brand-autodark"><img src="{% static 'static/logo.svg' %}" height="36" alt=""></a>
12+
</div>
13+
<form class="card card-md" method="post">
14+
{% csrf_token %}
15+
16+
17+
<div class="card-body">
18+
<h2 class="card-title text-center mb-4">Create new account</h2>
19+
{% for field in form %}
20+
{% if not field.name in 'password1, password2' %}
21+
<div class="mb-3">
22+
<label class="form-label">{{ field.label }}</label>
23+
{{ field }}
24+
<span class="text-danger d-block my-2">{{ field.errors }}</span>
25+
</div>
26+
{% else %}
27+
<div class="mb-3">
28+
<label class="form-label">{{ field.label }}</label>
29+
<div class="input-group input-group-flat">
30+
{{ field }}
31+
<span class="input-group-text">
32+
<a href="#" class="link-secondary" title="Show password" data-bs-toggle="tooltip"><!-- Download SVG icon from http://tabler-icons.io/i/eye -->
33+
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" /><path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" /></svg>
34+
</a>
35+
</span>
36+
</div>
37+
<span class="text-danger d-block my-2">{{ field.errors }}</span>
38+
</div>
39+
{% endif %}
40+
{% endfor %}
41+
<div class="mb-3">
42+
<label class="form-check">
43+
<input type="checkbox" class="form-check-input"/>
44+
<span class="form-check-label">Agree the <a href="{% url 'terms_service' %}" tabindex="-1">terms and policy</a>.</span>
45+
</label>
46+
</div>
47+
<div class="form-footer">
48+
<button type="submit" class="btn btn-primary w-100">Create new account</button>
49+
</div>
50+
</div>
51+
</form>
52+
<div class="text-center text-muted mt-3">
53+
Already have account? <a href="{% url 'login' %}" tabindex="-1">Sign in</a>
54+
</div>
55+
</div>
56+
</div>
57+
58+
{% endblock content %}

0 commit comments

Comments
 (0)