Skip to content

Commit dd18479

Browse files
committed
More work done on dashboard
1 parent ff88329 commit dd18479

File tree

8 files changed

+89
-16
lines changed

8 files changed

+89
-16
lines changed

dashboard/admin.py

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from django.contrib import admin
2+
3+
from dashboard.models import Dashboard
4+
5+
6+
@admin.register(Dashboard)
7+
class DashboardAdmin(admin.ModelAdmin):
8+
list_display = ['name',
9+
'slug',
10+
'user']

dashboard/gadgets/__init__.py

+3-7
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,8 @@
44
def find_gadgets():
55
gadget_dir = os.path.dirname(os.path.abspath(__file__))
66
try:
7-
if True:
8-
file_dict = [f[:-3] for f in os.listdir(gadget_dir)
9-
if not f.startswith('_') and f.endswith('.py')]
10-
else:
11-
file_dict = [f[:-4] for f in os.listdir(gadget_dir)
12-
if not f.startswith('_') and f.endswith('.pyc')]
7+
file_dict = [f[:-3] for f in os.listdir(gadget_dir)
8+
if not f.startswith('_') and f.endswith('.py')]
139
except OSError:
1410
return []
1511
gadgetArray = []
@@ -19,5 +15,5 @@ def find_gadgets():
1915

2016

2117
def open_gadget(gadget):
22-
g = __import__("djangodashboard.dashboard.gadgets." + gadget, globals(), locals(), ["Gadget"])
18+
g = __import__("django-dashboard.dashboard.gadgets." + gadget, globals(), locals(), ["Gadget"])
2319
return g.Gadget()

dashboard/migrations/0001_initial.py

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Generated by Django 2.1.3 on 2019-02-12 21:01
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
initial = True
11+
12+
dependencies = [
13+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
14+
]
15+
16+
operations = [
17+
migrations.CreateModel(
18+
name='Dashboard',
19+
fields=[
20+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
21+
('name', models.CharField(max_length=1024)),
22+
('slug', models.SlugField(unique=True)),
23+
('layout', models.TextField(blank=True, null=True)),
24+
('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
25+
],
26+
options={
27+
'db_table': 'dashboard',
28+
},
29+
),
30+
migrations.CreateModel(
31+
name='DashboardItem',
32+
fields=[
33+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
34+
('gadget', models.TextField()),
35+
('column_number', models.IntegerField()),
36+
('position', models.IntegerField()),
37+
('colour', models.TextField(null=True)),
38+
('title', models.TextField(null=True)),
39+
('collapsed', models.BooleanField()),
40+
('modifier', models.TextField(null=True)),
41+
('active', models.BooleanField()),
42+
('dashboard', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='dashboard.Dashboard')),
43+
],
44+
options={
45+
'db_table': 'dashboard_item',
46+
},
47+
),
48+
migrations.AlterUniqueTogether(
49+
name='dashboard',
50+
unique_together={('name', 'user')},
51+
),
52+
]

dashboard/migrations/__init__.py

Whitespace-only changes.

dashboard/models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
class Dashboard(models.Model):
1111
name = models.CharField(max_length=1024)
12-
slug = models.SlugField()
12+
slug = models.SlugField(unique=True)
1313
layout = models.TextField(null=True, blank=True)
1414
user = models.ForeignKey(User, null=True, blank=True, on_delete=models.CASCADE)
1515

dashboard/templates/layouts/base_layout.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
<link href="{% static 'dashboard/css/dashboard.css' %}" rel="stylesheet" type="text/css" />
99
</head>
1010
<body>
11-
<script type="text/javascript" src="{% static 'dashboard/js/dashboard.js' %}></script>
12-
<div style="text-align:right;"><a style="color:black;" href="{% url dashboard_view_gadgets name %}">Add gadgets</a> - <a style="color:black;" href="{% url dashboard_show_layouts name %}">Change Layout</a></div>
11+
<script type="text/javascript" src="{% static 'dashboard/js/dashboard.js' %}"></script>
12+
<div style="text-align:right;"><a style="color:black;" href="{% url 'dashboard:view_gadgets' dashboard.slug %}">Add gadgets</a> - <a style="color:black;" href="url dashboard_show_layouts name">Change Layout</a></div>
1313
<div style="clear:both;"/>
1414
{% block layout %}{% endblock %}
1515

@@ -34,7 +34,7 @@
3434
</script>
3535

3636
<script type="text/javascript">
37-
iDashboard.init('{% url dashboard_update_ajax name %}','{{ csrf_token }}','{% static "dashboard/css/" %}');
37+
iDashboard.init('url dashboard_update_ajax name','{{ csrf_token }}','{% static "dashboard/css/" %}');
3838
</script>
3939
</body>
4040
</html>

dashboard/urls.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@
1515

1616

1717
from django.urls import path
18+
from dashboard.views import ViewDashboard, ViewGadgets
1819

19-
from dashboard.views import ViewDashboard
2020
app_name = 'dashboard'
2121
urlpatterns = [
2222
path('<slug:slug>/', ViewDashboard.as_view(), name='view_dashboard'),
23+
path('<slug:slug>/view-gadgets/', ViewGadgets.as_view(), name='view_gadgets'),
2324
]

dashboard/views.py

+18-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from django.shortcuts import render_to_response, get_object_or_404, render
22
from django.views import View
3+
from django.views.generic import TemplateView
34

45
from dashboard.gadgets import find_gadgets, open_gadget
56
from django.http import HttpResponse, HttpResponseRedirect
@@ -13,9 +14,9 @@
1314
class ViewDashboard(View):
1415
def get(self, request, slug):
1516
try:
16-
dashboard = Dashboard.objects.get(alug=alug, user=request.user)
17+
dashboard = Dashboard.objects.get(slug=slug, user=request.user)
1718
except Dashboard.DoesNotExist:
18-
dashboard = Dashboard(alug=alug, user=request.user, layout='three')
19+
dashboard = Dashboard(slug=slug, user=request.user, layout='three')
1920
dashboard.save()
2021
dashboard_data = {}
2122
column_data = []
@@ -33,7 +34,8 @@ def get(self, request, slug):
3334
dashboard_data[column_number] = column_data
3435

3536
return render_to_response('layouts/%s.html' % dashboard.layout,
36-
{'name': name,
37+
{'name': dashboard.name,
38+
'dashboard': dashboard,
3739
'dashboard_data': dashboard_data,
3840
'dashboard_items': dashboard_items})
3941
#
@@ -81,7 +83,19 @@ def get(self, request, slug):
8183
# w = open_gadget(dashboard_item.gadget)
8284
# return w.view(request, dashboard_item)
8385
#
84-
#
86+
87+
88+
class ViewGadgets(TemplateView):
89+
template_name = 'view_gadgets.html'
90+
91+
def get_context_data(self, **kwargs):
92+
context = super(ViewGadgets, self).get_context_data(**kwargs)
93+
dashboard = get_object_or_404(Dashboard, slug=self.kwargs['slug'])
94+
context['dashboard'] = dashboard
95+
context['gadgets'] = find_gadgets()
96+
return context
97+
98+
8599
# # noinspection PyUnusedLocal
86100
# def view_gadgets(request, name):
87101
# return render_to_response('view_gadgets.html', {'name': name, 'gadgets': find_gadgets()})

0 commit comments

Comments
 (0)