file moves...

This commit is contained in:
bkfox 2015-12-22 08:34:52 +01:00
parent c3d584c787
commit 0511ec5bc3
17 changed files with 0 additions and 433 deletions

View File

@ -1,10 +0,0 @@
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "instance.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)

View File

View File

@ -1,46 +0,0 @@
import copy
from django.contrib import admin
from django.utils.translation import ugettext as _, ugettext_lazy
from django.contrib.contenttypes.admin import GenericStackedInline
import aircox.programs.models as programs
from website.models import *
def add_inline (base_model, post_model, prepend = False):
class InlineModel (admin.StackedInline):
model = post_model
extra = 1
max_num = 1
verbose_name = _('Post')
fieldsets = [
(None, {
'fields': ['title', 'content', 'image', 'tags']
}),
(None, {
'fields': ['date', 'published', 'author', 'thread_pk', 'thread_type']
})
]
registry = admin.site._registry
if not base_model in registry:
raise TypeError(str(base_model) + " not in admin registry")
inlines = list(registry[base_model].inlines) or []
if prepend:
inlines.insert(0, InlineModel)
else:
inlines.append(InlineModel)
registry[base_model].inlines = inlines
add_inline(programs.Program, Program, True)
# add_inline(programs.Episode, Episode, True)
admin.site.register(Program)
# admin.site.register(Episode)

View File

@ -1,50 +0,0 @@
import autocomplete_light.shortcuts as al
from aircox.programs.models import *
from taggit.models import Tag
al.register(Tag)
class OneFieldAutocomplete(al.AutocompleteModelBase):
choice_html_format = u'''
<span class="block" data-value="%s">%s</span>
'''
def choice_html (self, choice):
value = choice[self.search_fields[0]]
return self.choice_html_format % (self.choice_label(choice),
self.choice_label(value))
def choices_for_request(self):
#if not self.request.user.is_staff:
# self.choices = self.choices.filter(private=False)
filter_args = { self.search_fields[0] + '__icontains': self.request.GET['q'] }
self.choices = self.choices.filter(**filter_args)
self.choices = self.choices.values(self.search_fields[0]).distinct()
return self.choices
class TrackArtistAutocomplete(OneFieldAutocomplete):
search_fields = ['artist']
model = Track
al.register(TrackArtistAutocomplete)
class TrackNameAutocomplete(OneFieldAutocomplete):
search_fields = ['name']
model = Track
al.register(TrackNameAutocomplete)
#class DiffusionAutocomplete(OneFieldAutocomplete):
# search_fields = ['episode', 'program', 'start', 'stop']
# model = Diffusion
#
#al.register(DiffusionAutocomplete)

View File

@ -1,19 +0,0 @@
from django import forms
from django.contrib.admin import widgets
import autocomplete_light.shortcuts as al
from autocomplete_light.contrib.taggit_field import TaggitWidget
from aircox.programs.models import *
class TrackForm (forms.ModelForm):
class Meta:
model = Track
fields = ['artist', 'name', 'tags', 'position']
widgets = {
'artist': al.TextWidget('TrackArtistAutocomplete'),
'name': al.TextWidget('TrackNameAutocomplete'),
'tags': TaggitWidget('TagAutocomplete'),
}

View File

@ -1,22 +0,0 @@
from django.db import models
from aircox.cms.models import RelatedPost
import aircox.programs.models as programs
class Program (RelatedPost):
class Relation:
model = programs.Program
bind_mapping = True
mapping = {
}
class Episode (RelatedPost):
class Relation:
model = programs.Diffusion
bind_mapping = True
mapping = {
'thread': 'program',
# 'title': 'name',
# 'content': 'description',
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

View File

@ -1,130 +0,0 @@
body {
background-color: #F2F2F2;
font-family: "Myriad Pro",Calibri,Helvetica,Arial,sans-serif;
margin: 0 3em;
}
h1, h2, h3 {
font-family: "Myriad Pro",Calibri,Helvetica,Arial,sans-serif;
}
time {
font-size: 0.9em;
color: #818181;
}
a {
text-decoration: none;
color: #616161;
}
a:hover {
color: #818181;
}
/** Menu **/
.menu {
padding: 0.5em;
}
.menu_top {
background-color: #212121;
color: #007EDF;
font-size: 1.1em;
}
header.menu {
padding: 0.2em;
height: 9em;
}
header.menu img {
height: 100%;
float: left;
}
#colony img {
height: auto;
position: fixed;
top: 1em;
right: 0;
z-index: -1;
}
.menu h1 {
font-size: 1.1em;
}
.menu .post_list {
font-size: 0.9em;
}
.menu .post_list h3 {
font-size: 1.0em;
display: inline;
}
.menu .post_list time {
margin: 0.2em;
}
/** Page **/
.page-container {
box-shadow: 0em 0.2em 0.5em 0.1em black;
margin-bottom: 2em;
}
.page {
width: calc(100% - 0.4em);
padding: 1.5em 0.2em;
background-color: rgba(255, 255, 255, 0.8);
}
.page img {
box-shadow: 0em 0em 0.2em 0.01em black;
border-radius: 0.2em;
}
.post_list {
padding: 0.1em;
border: 1px #818181 dotted;
}
.post_list.embed + nav {
text-align: right;
}
.post_list:not(.embed) + nav {
text-align: center;
}
main .post_list .post_item {
min-height: 64px;
padding: 0.2em;
}
main .post_list .post_item:hover {
}
main .post_list h3 {
margin: 0.2em;
}
main .post_list time {
float: right;
}
main .post_list img {
float: left;
margin-right: 0.5em;
}

View File

@ -1,3 +0,0 @@
from django.test import TestCase
# Create your tests here.

View File

@ -1,79 +0,0 @@
from django.conf.urls import url, include
from website.models import *
from website.views import *
from aircox.cms.models import Article
from aircox.cms.views import Menu, Section, Sections
from aircox.cms.routes import *
from aircox.cms.website import Website
website = Website(
name = 'RadioCampus',
styles = 'website/styles.css',
menus = [
Menu(
position = 'header',
sections = [
Sections.Image(url = 'website/logo.png'),
Sections.Image(url = 'website/colony.png', attrs = { 'id': 'colony' }),
]
),
Menu(
position = 'top',
sections = [
Section(content = "Radio Campus le SITE"),
]
),
Menu(
position = 'left',
sections = [
Section(content = 'loool<br>blob'),
PreviousDiffusions(),
],
),
],
)
base_sections = [
Sections.PostContent(),
Sections.PostImage(),
]
base_routes = [
AllRoute,
ThreadRoute,
SearchRoute,
DateRoute,
]
website.register(
'article',
Article,
sections = base_sections,
routes = base_routes
)
website.register(
'program',
Program,
sections = base_sections + [
ScheduleSection(),
EpisodesSection(),
],
routes = base_routes,
)
website.register (
'episode',
Episode,
sections = base_sections,
routes = base_routes,
)
urlpatterns = website.urls

View File

@ -1,74 +0,0 @@
from django.shortcuts import render
from django.template.loader import render_to_string
from django.views.generic import ListView
from django.views.generic import DetailView
from django.core import serializers
from django.utils import timezone as tz
from django.utils.translation import ugettext as _, ugettext_lazy
import aircox.programs.models as programs
import aircox.cms.routes as routes
import aircox.cms.utils as utils
from aircox.cms.views import Sections
from website.models import *
class PlayListSection (Sections.List):
title = _('Playlist')
def get_object_list (self):
tracks = programs.Track.objects \
.filter(episode = self.object) \
.order_by('position')
return [ Sections.List.Item(None, track.title, track.artist)
for track in tracks ]
class ScheduleSection (Sections.List):
title = _('Schedule')
def get_object_list (self):
scheds = programs.Schedule.objects \
.filter(program = self.object.pk)
return [
Sections.List.Item(None, sched.get_frequency_display(),
_('rerun') if sched.rerun else None)
for sched in scheds
]
class EpisodesSection (Sections.Posts):
title = _('Episodes')
def get_object_list (self):
return utils.filter_thread(Episode.objects, self.object)
def get_url (self):
return utils.get_url(self.website, routes.ThreadRoute, Episode,
{ 'thread_model': 'program', 'pk': self.object.pk})
class PreviousDiffusions (Sections.Posts):
title = _('Previous Diffusions')
fields = ['title', 'time']
def get_object_list (self):
diffusions = programs.Diffusion.objects\
.filter(date__lt = tz.datetime.now())
episodes = []
for diffusion in diffusions:
if not diffusion.episode:
continue
post = Episode.objects.filter(related = diffusion.episode.pk)
if not post:
continue
post = post[0]
post.date = diffusion.date
episodes.append(post)
if len(episodes) == self.paginate_by:
break
return episodes