'ajax_select',
'jquery',
# 'jquery_ui',
+ 'formtools',
'tinymce',
'quotes',
+ 'quotes_beta',
)
MIDDLEWARE_CLASSES = (
import quotes.views
-admin.autodiscover()
+# admin.autodiscover()
urlpatterns = [
url(r'^cntrl/', include(admin.site.urls)),
url(r'^tinymce/', include('tinymce.urls')),
url(r'^ajax_select/', include('ajax_select.urls')),
url(r'^quotes/', include('quotes.urls', namespace='quotes')),
+ url(r'^quotes-beta/', include('quotes_beta.urls', namespace='quotes_beta')),
url(r'^$', RedirectView.as_view(url='/quotes/', permanent=True)),
]
--- /dev/null
+from django.contrib import admin
+
+# Register your models here.
+from .models import *
+
+admin.site.register(Tag)
+admin.site.register(Context)
+admin.site.register(Person)
+admin.site.register(Book)
+admin.site.register(Film)
+admin.site.register(Quote)
+admin.site.register(Link)
--- /dev/null
+def add(request):
+ pass
--- /dev/null
+from django import forms
+
+class QuoteForm(forms.Form):
+ text = form.TextField()
+
+ parent = form.CharField()
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.3 on 2016-11-19 13:55
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import quotes.localmodels
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Context',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('creation_date', models.DateTimeField(auto_now_add=True)),
+ ('last_modification', models.DateTimeField(auto_now=True)),
+ ('name', models.CharField(max_length=100, unique=True)),
+ ('date', models.DateField(blank=True, help_text=b'Date of the quote', null=True)),
+ ('notes', quotes.localmodels.HTMLField(blank=True, help_text=b'Notes about the entry; may be left blank. Displayed on the public pages')),
+ ('pvt_notes', quotes.localmodels.HTMLField(blank=True, help_text=b'Notes about the entry; not displayed on the public interface')),
+ ('nb_display', models.BigIntegerField(default=0)),
+ ],
+ options={
+ 'ordering': ['name'],
+ },
+ ),
+ migrations.CreateModel(
+ name='Link',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('relation_type', models.CharField(max_length=100)),
+ ],
+ ),
+ migrations.CreateModel(
+ name='Tag',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('tag', models.CharField(max_length=100, unique=True)),
+ ],
+ ),
+ migrations.CreateModel(
+ name='Book',
+ fields=[
+ ('context_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='quotes_beta.Context')),
+ ],
+ bases=('quotes_beta.context',),
+ ),
+ migrations.CreateModel(
+ name='Film',
+ fields=[
+ ('context_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='quotes_beta.Context')),
+ ],
+ bases=('quotes_beta.context',),
+ ),
+ migrations.CreateModel(
+ name='Person',
+ fields=[
+ ('context_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='quotes_beta.Context')),
+ ('birth_date', models.DateField(blank=True, help_text=b'Date of birth', null=True)),
+ ('death_date', models.DateField(blank=True, help_text=b'Date of death (leave blank if still alive!)', null=True)),
+ ],
+ bases=('quotes_beta.context',),
+ ),
+ migrations.CreateModel(
+ name='Quote',
+ fields=[
+ ('context_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='quotes_beta.Context')),
+ ('text', quotes.localmodels.HTMLField()),
+ ],
+ bases=('quotes_beta.context',),
+ ),
+ migrations.AddField(
+ model_name='link',
+ name='child',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='parents', to='quotes_beta.Context'),
+ ),
+ migrations.AddField(
+ model_name='link',
+ name='parent',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='childs', to='quotes_beta.Context'),
+ ),
+ migrations.AddField(
+ model_name='context',
+ name='tags',
+ field=models.ManyToManyField(blank=True, help_text=b'Not implemented yet', to='quotes_beta.Tag'),
+ ),
+ ]
--- /dev/null
+from django.db import models
+from django.urls import reverse
+
+from quotes.localmodels import HTMLField
+
+# Create your models here.
+class Tag(models.Model):
+ tag = models.CharField(max_length=100, unique=True)
+
+ def __unicode__(self):
+ return self.tag
+
+ def get_absolute_url(self):
+ return reverse('quotes_beta:tags', args=[str(self.id)])
+
+class Context(models.Model):
+ creation_date = models.DateTimeField(auto_now_add=True)
+ last_modification = models.DateTimeField(auto_now=True)
+
+ name = models.CharField(max_length=100,
+ unique=True)
+
+ date = models.DateField(blank=True, null=True,
+ help_text="Date of the quote")
+
+ notes = HTMLField(blank=True, help_text= \
+ "Notes about the entry; may be left blank. Displayed \
+ on the public pages")
+ pvt_notes = HTMLField(blank=True, help_text= \
+ "Notes about the entry; not displayed on \
+ the public interface")
+
+ tags = models.ManyToManyField(Tag, blank=True,
+ help_text='Not implemented yet')
+
+ nb_display = models.BigIntegerField(default=0)
+ def incr_display(self):
+ self.nb_display = models.F('nb_display') + 1
+ self.save()
+
+ def add_parent(self, parent):
+ descendants = self.childs + self
+ ascendants = parent + parent.parents
+ for descendant in descendants:
+ for ascendant in ascendants:
+ Link.objects.create(child=descendant, parent=ascendant)
+
+ def __unicode__(self):
+ return self.name
+
+ class Meta:
+ ordering = ['name']
+
+class Person(Context):
+ birth_date = models.DateField(blank=True, null=True,
+ help_text="Date of birth")
+ death_date = models.DateField(blank=True, null=True,
+ help_text="Date of death (leave blank \
+ if still alive!)")
+
+ def get_absolute_url(self):
+ return reverse('quotes_beta:person', args=[str(self.id)])
+
+class Book(Context):
+ def get_absolute_url(self):
+ return reverse('quotes_beta:work', args=[str(self.id)])
+
+class Film(Context):
+ def get_absolute_url(self):
+ return reverse('quotes_beta:work', args=[str(self.id)])
+
+class Quote(Context):
+ text = HTMLField()
+
+ def __unicode__(self):
+ return self.work.author.name + ": " + self.text
+
+ def get_absolute_url(self):
+ return reverse('quotes_beta:onequote', args=[str(self.id)])
+
+ # class Meta(Context.Meta):
+ # ordering = ['-pk']
+
+class Link(models.Model):
+ child = models.ForeignKey(Context, related_name='parents')
+ parent = models.ForeignKey(Context, related_name='childs')
+ relation_type = models.CharField(max_length=100)
+
+
--- /dev/null
+from django.conf.urls import url
+from django.contrib.auth.views import login
+
+from . import views, adminviews
+
+urlpatterns = [
+ url(r'^$', views.index, name='index'),
+
+# url(r'^admin/$', adminviews.listadmintools, name='listadmintools'),
+ url(r'^admin/login$', login, {'template_name': 'admin/login.html'}),
+ url(r'^admin/add/$', adminviews.add, name='add'),
+
+# url(r'^all/$', views.all, name="all"),
+]
--- /dev/null
+def index(request):
+ pass