From c1f8c10e107aa6794ce7f8c7e4c3ec1e09059ead Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Tue, 23 Nov 2010 11:30:03 +0100 Subject: [PATCH] add some text --- pandora/settings.py | 1 + pandora/text/__init__.py | 0 pandora/text/models.py | 62 ++++++++++++++++++++++++++++++++++++++++ pandora/text/tests.py | 23 +++++++++++++++ pandora/text/views.py | 59 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 145 insertions(+) create mode 100644 pandora/text/__init__.py create mode 100644 pandora/text/models.py create mode 100644 pandora/text/tests.py create mode 100644 pandora/text/views.py diff --git a/pandora/settings.py b/pandora/settings.py index f1e4bf636..0cfdda475 100644 --- a/pandora/settings.py +++ b/pandora/settings.py @@ -121,6 +121,7 @@ INSTALLED_APPS = ( 'item', 'archive', 'user', + 'text', 'torrent', ) diff --git a/pandora/text/__init__.py b/pandora/text/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pandora/text/models.py b/pandora/text/models.py new file mode 100644 index 000000000..6eacc624d --- /dev/null +++ b/pandora/text/models.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# vi:si:et:sw=4:sts=4:ts=4 +from __future__ import division, with_statement +from datetime import datetime + +from django.db import models +from django.contrib.auth.models import User +from django.conf import settings + +import ox +from ox.django import fields +from ox.utils import json + + +class News(models.Model): + created = models.DateTimeField(auto_now_add=True) + modified = models.DateTimeField(auto_now=True) + published = models.DateTimeField(default=datetime.now, editable=False) + public = models.BooleanField(default=False) + + user = models.ForeignKey(User) + slug = models.SlugField() + title = models.CharField(null=True, max_length=255) + body = models.TextField(default='') + + def __unicode__(self): + return u"%s <%s>" % (self.title, self.slug) + + def get_absolute_url(self): + return '/text/%s' % self.slug + +class Text(models.Model): + created = models.DateTimeField(auto_now_add=True) + modified = models.DateTimeField(auto_now=True) + published = models.DateTimeField(default=datetime.now, editable=False) + public = models.BooleanField(default=False) + + user = models.ForeignKey(User) + slug = models.SlugField() + title = models.CharField(null=True, max_length=255) + body = models.TextField(default='') + + def __unicode__(self): + return u"%s <%s>" % (self.title, self.slug) + + def get_absolute_url(self): + return '/text/%s' % self.slug + +class Image(models.Model): + image = models.ImageField(upload_to='text/image') + caption = models.CharField(max_length=255, default="") + + def get_absolute_url(self): + return self.image.url + +class Attachment(models.Model): + file = models.FileField(upload_to='text/attachment') + caption = models.CharField(max_length=255, default="") + + def get_absolute_url(self): + return self.file.url + diff --git a/pandora/text/tests.py b/pandora/text/tests.py new file mode 100644 index 000000000..2247054b3 --- /dev/null +++ b/pandora/text/tests.py @@ -0,0 +1,23 @@ +""" +This file demonstrates two different styles of tests (one doctest and one +unittest). These will both pass when you run "manage.py test". + +Replace these with more appropriate tests for your application. +""" + +from django.test import TestCase + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.failUnlessEqual(1 + 1, 2) + +__test__ = {"doctest": """ +Another way to test that 1 + 1 is equal to 2. + +>>> 1 + 1 == 2 +True +"""} + diff --git a/pandora/text/views.py b/pandora/text/views.py new file mode 100644 index 000000000..11d59f00e --- /dev/null +++ b/pandora/text/views.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# vi:si:et:sw=4:sts=4:ts=4 +from __future__ import division + +from django.contrib.auth.decorators import login_required +from django.contrib.auth.models import User +from django.db.models import Q, Avg, Count, Sum +from django.http import HttpResponse, Http404 +from django.shortcuts import render_to_response, get_object_or_404, get_list_or_404, redirect +from django.template import RequestContext +from django.conf import settings + +from ox.utils import json +from ox.django.decorators import login_required_json +from ox.django.shortcuts import render_to_json_response, get_object_or_404_json, json_response +from ox.django.http import HttpFileResponse +import ox + +import models + + +def api_getNews(request): + ''' + param data + string id + + return page + ''' + response = json_response({}) + itemId = json.loads(request.POST['data']) + item = get_object_or_404_json(models.News, pk=itemId) + response['data']['page'] = item.html() + return render_to_json_response(response) + +def api_findNews(request): + ''' + ''' + response = json_response({}) + return render_to_json_response(response) + +def api_getText(request): + ''' + param data + string id + + return page + ''' + response = json_response({}) + itemId = json.loads(request.POST['data']) + item = get_object_or_404_json(models.Text, pk=itemId) + response['data']['page'] = item.html() + return render_to_json_response(response) + +def api_findText(request): + ''' + ''' + response = json_response({}) + return render_to_json_response(response) +