From 77469e83bbb197f6a62e488d26daeac705c8a2b7 Mon Sep 17 00:00:00 2001 From: olivier <> Date: Mon, 23 Apr 2007 13:37:06 +0000 Subject: [PATCH] web interface: added quick search and fixed export download --- telemeta/css/style.css | 29 +++++++++++++++++++++---- telemeta/models.py | 21 +++++++++++++++++- telemeta/templates/base.html | 12 +++++++++-- telemeta/templates/index.html | 13 ----------- telemeta/templates/search_results.html | 30 ++++++++++++++++++++++++++ telemeta/urls.py | 3 +++ telemeta/views/web.py | 17 ++++++++++++++- 7 files changed, 104 insertions(+), 21 deletions(-) create mode 100644 telemeta/templates/search_results.html diff --git a/telemeta/css/style.css b/telemeta/css/style.css index 5b3036fa..e7d75b60 100644 --- a/telemeta/css/style.css +++ b/telemeta/css/style.css @@ -1,26 +1,34 @@ body { font-family: Verdana; - font-size: 11px; + font-size: 80%; } #header { - font-size: 16px; + font-size: 140%; border-bottom: solid 1px black; font-weight: bold; + padding-bottom: 0.8em; + padding-top: 1em; +} +#header a { + color: black; + text-decoration: none; } +/* label { width: 20ex; display: block; float: left; } - input { - margin-bottom: 4px; + margin-bottom: 1ex; } +*/ #menu { text-align: right; + clear: right; } #menu a:link, #menu a:visited { @@ -36,3 +44,16 @@ input { #menu a { } + +#quick_search { + float: right; + font-size: 80%; +} + +#quick_search input { + vertical-align: middle; + font-size: 80%; +} + +#quick_search_pattern { +} diff --git a/telemeta/models.py b/telemeta/models.py index ae202810..0a3b893d 100644 --- a/telemeta/models.py +++ b/telemeta/models.py @@ -1,5 +1,6 @@ import telemeta from django.db import models +from django.db.models import Q from telemeta.core import * class MediaModel(Component): @@ -18,6 +19,13 @@ class MediaCore: fields_dict[field.name] = getattr(self, field.name) return fields_dict +class MediaCollectionManager(models.Manager): + def quick_search(self, pattern): + return super(MediaCollectionManager, self).get_query_set().filter( + Q(title__icontains=pattern) | + Q(description__icontains=pattern) + ) + class MediaCollection(models.Model, MediaCore): "Group related media items" @@ -35,6 +43,8 @@ class MediaCollection(models.Model, MediaCore): source = models.CharField(maxlength=250, blank=True) subject = models.CharField(maxlength=250, blank=True) + objects = MediaCollectionManager() + def __str__(self): return self.title @@ -45,7 +55,14 @@ class MediaCollection(models.Model, MediaCore): class Admin: pass - +class MediaItemManager(models.Manager): + def quick_search(self, pattern): + return super(MediaItemManager, self).get_query_set().filter( + Q(title__icontains=pattern) | + Q(creator__icontains=pattern) | + Q(identifier__icontains=pattern) | + Q(description__icontains=pattern) + ) class MediaItem(models.Model, MediaCore): "Describe a item with metadata" @@ -68,6 +85,8 @@ class MediaItem(models.Model, MediaCore): source = models.CharField(maxlength=250, blank=True) duration = models.FloatField(max_digits=11, decimal_places=3, null=True, blank=True) + objects = MediaItemManager() + def __str__(self): return self.title diff --git a/telemeta/templates/base.html b/telemeta/templates/base.html index f69b266e..6c61ed28 100644 --- a/telemeta/templates/base.html +++ b/telemeta/templates/base.html @@ -2,11 +2,19 @@
No media item available.
-{% endif %} {% endblock %} diff --git a/telemeta/templates/search_results.html b/telemeta/templates/search_results.html new file mode 100644 index 00000000..5bf9c113 --- /dev/null +++ b/telemeta/templates/search_results.html @@ -0,0 +1,30 @@ +{% extends "base.html" %} + +{% block content %} +