diff --git a/LICENSE b/aircox/LICENSE
similarity index 100%
rename from LICENSE
rename to aircox/LICENSE
diff --git a/Manifest.in b/aircox/Manifest.in
similarity index 100%
rename from Manifest.in
rename to aircox/Manifest.in
diff --git a/README.md b/aircox/README.md
similarity index 100%
rename from README.md
rename to aircox/README.md
diff --git a/requirements.txt b/aircox/requirements.txt
similarity index 100%
rename from requirements.txt
rename to aircox/requirements.txt
diff --git a/setup.py b/aircox/setup.py
similarity index 100%
rename from setup.py
rename to aircox/setup.py
diff --git a/manage.py b/manage.py
deleted file mode 100755
index 0b5cc1d..0000000
--- a/manage.py
+++ /dev/null
@@ -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)
diff --git a/website/__init__.py b/website/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/website/admin.py b/website/admin.py
deleted file mode 100644
index 0037f66..0000000
--- a/website/admin.py
+++ /dev/null
@@ -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)
-
-
diff --git a/website/autocomplete_light_registry.py b/website/autocomplete_light_registry.py
deleted file mode 100644
index 3fc80c7..0000000
--- a/website/autocomplete_light_registry.py
+++ /dev/null
@@ -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'''
- %s
- '''
-
- 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)
-
-
diff --git a/website/forms.py b/website/forms.py
deleted file mode 100644
index a67d1ad..0000000
--- a/website/forms.py
+++ /dev/null
@@ -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'),
- }
-
diff --git a/website/models.py b/website/models.py
deleted file mode 100644
index 18adf50..0000000
--- a/website/models.py
+++ /dev/null
@@ -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',
- }
-
diff --git a/website/static/website/colony.png b/website/static/website/colony.png
deleted file mode 100644
index 80938a2..0000000
Binary files a/website/static/website/colony.png and /dev/null differ
diff --git a/website/static/website/logo.png b/website/static/website/logo.png
deleted file mode 100644
index 89fa4c2..0000000
Binary files a/website/static/website/logo.png and /dev/null differ
diff --git a/website/static/website/styles.css b/website/static/website/styles.css
deleted file mode 100644
index 594c8b5..0000000
--- a/website/static/website/styles.css
+++ /dev/null
@@ -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;
- }
-
-
diff --git a/website/tests.py b/website/tests.py
deleted file mode 100644
index 7ce503c..0000000
--- a/website/tests.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from django.test import TestCase
-
-# Create your tests here.
diff --git a/website/urls.py b/website/urls.py
deleted file mode 100644
index 8987206..0000000
--- a/website/urls.py
+++ /dev/null
@@ -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
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
-
diff --git a/website/views.py b/website/views.py
deleted file mode 100644
index a6f1842..0000000
--- a/website/views.py
+++ /dev/null
@@ -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
-
-
-