diff --git a/aircox/admin/__init__.py b/aircox/admin/__init__.py index 21436bb..42af3f2 100644 --- a/aircox/admin/__init__.py +++ b/aircox/admin/__init__.py @@ -5,3 +5,4 @@ from .program import ProgramAdmin, ScheduleAdmin, StreamAdmin from .sound import SoundAdmin, TrackAdmin from .station import StationAdmin + diff --git a/aircox/admin/program.py b/aircox/admin/program.py index 92345bc..df732ea 100644 --- a/aircox/admin/program.py +++ b/aircox/admin/program.py @@ -3,7 +3,7 @@ from copy import deepcopy from django.contrib import admin from django.utils.translation import ugettext_lazy as _ -from aircox.models import Program, Schedule, Stream +from ..models import Program, Schedule, Stream from .page import PageAdmin @@ -26,7 +26,8 @@ class ProgramAdmin(PageAdmin): schedule.boolean = True schedule.short_description = _("Schedule") - list_display = PageAdmin.list_display + ('schedule', 'station') + list_display = PageAdmin.list_display + ('schedule', 'station', 'active') + list_filter = PageAdmin.list_filter + ('station', 'active') fieldsets = deepcopy(PageAdmin.fieldsets) + [ (_('Program Settings'), { 'fields': ['active', 'station', 'sync'], diff --git a/aircox/admin/sound.py b/aircox/admin/sound.py index 5aca87b..ca0f9f5 100644 --- a/aircox/admin/sound.py +++ b/aircox/admin/sound.py @@ -3,7 +3,7 @@ from django.utils.translation import ugettext as _, ugettext_lazy from adminsortable2.admin import SortableInlineAdminMixin -from aircox.models import Sound, Track +from ..models import Sound, Track class TracksInline(SortableInlineAdminMixin, admin.TabularInline): diff --git a/aircox/apps.py b/aircox/apps.py index 81a337b..d18dc5f 100755 --- a/aircox/apps.py +++ b/aircox/apps.py @@ -1,9 +1,14 @@ from django.apps import AppConfig +from django.contrib.admin.apps import AdminConfig class AircoxConfig(AppConfig): name = 'aircox' verbose_name = 'Aircox' - def ready(self): - pass + +class AircoxAdminConfig(AdminConfig): + default_site = 'aircox.views.admin.AdminSite' + + + diff --git a/aircox/forms.py b/aircox/forms.py new file mode 100644 index 0000000..cfc9f32 --- /dev/null +++ b/aircox/forms.py @@ -0,0 +1,20 @@ +from django import forms +from django.forms import ModelForm + +from .models import Comment + + +class CommentForm(ModelForm): + nickname = forms.CharField() + email = forms.EmailField(required=False) + content = forms.CharField(widget=forms.Textarea()) + + nickname.widget.attrs.update({'class': 'input'}) + email.widget.attrs.update({'class': 'input'}) + content.widget.attrs.update({'class': 'textarea'}) + + class Meta: + model = Comment + fields = ['nickname', 'email', 'content'] + + diff --git a/aircox/models/__pycache__/log.cpython-37.pyc b/aircox/models/__pycache__/log.cpython-37.pyc index 851957a..4847670 100644 Binary files a/aircox/models/__pycache__/log.cpython-37.pyc and b/aircox/models/__pycache__/log.cpython-37.pyc differ diff --git a/aircox/models/__pycache__/program.cpython-37.pyc b/aircox/models/__pycache__/program.cpython-37.pyc index ab5a617..abc1957 100644 Binary files a/aircox/models/__pycache__/program.cpython-37.pyc and b/aircox/models/__pycache__/program.cpython-37.pyc differ diff --git a/aircox/models/program.py b/aircox/models/program.py index 3e3b777..d1ed23f 100644 --- a/aircox/models/program.py +++ b/aircox/models/program.py @@ -31,6 +31,9 @@ class ProgramQuerySet(PageQuerySet): # FIXME: reverse-lookup return self.filter(station=station) + def active(self): + return self.filter(active=True) + class Program(Page): """ diff --git a/aircox/static/aircox/admin.css b/aircox/static/aircox/admin.css new file mode 100644 index 0000000..37c8c40 --- /dev/null +++ b/aircox/static/aircox/admin.css @@ -0,0 +1,18 @@ +.navbar { + box-shadow: 0em 0em 0.6em rgba(0, 0, 0, 0.4); } + +.navbar .navbar-brand { + padding-right: 1em; } + +.navbar .navbar-brand img { + margin: 0em 0.4em; + margin-top: 0.3em; + max-height: 3em; } + +.breadcrumbs { + margin-bottom: 1em; } + +.results > #result_list { + width: 100%; + margin: 1em 0em; } + diff --git a/aircox/static/aircox/admin.js b/aircox/static/aircox/admin.js new file mode 100644 index 0000000..98df0aa --- /dev/null +++ b/aircox/static/aircox/admin.js @@ -0,0 +1,26 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["admin"],{ + +/***/ "./assets/admin/admin.scss": +/*!*********************************!*\ + !*** ./assets/admin/admin.scss ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// extracted by mini-css-extract-plugin\n\n//# sourceURL=webpack:///./assets/admin/admin.scss?"); + +/***/ }), + +/***/ "./assets/admin/index.js": +/*!*******************************!*\ + !*** ./assets/admin/index.js ***! + \*******************************/ +/*! no exports provided */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("/* harmony import */ var _admin_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./admin.scss */ \"./assets/admin/admin.scss\");\n/* harmony import */ var _admin_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_admin_scss__WEBPACK_IMPORTED_MODULE_0__);\n\n\n\n\n\n//# sourceURL=webpack:///./assets/admin/index.js?"); + +/***/ }) + +}]); \ No newline at end of file diff --git a/aircox/static/aircox/logo.png b/aircox/static/aircox/logo.png new file mode 100755 index 0000000..4b71388 Binary files /dev/null and b/aircox/static/aircox/logo.png differ diff --git a/aircox/templates/admin/aircox/statistics.html b/aircox/templates/admin/aircox/statistics.html new file mode 100644 index 0000000..b2ce11e --- /dev/null +++ b/aircox/templates/admin/aircox/statistics.html @@ -0,0 +1,13 @@ +{% extends "admin/base_site.html" %} +{% load i18n %} + + +{% block content %}{{ block.super }} +