From 6f710a4dd7ac18dd0631d89cd853ac1f91755cf8 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Fri, 19 Sep 2014 02:16:58 +0200 Subject: [PATCH] fix resource edit, add bootstrap pagination and buttons --- telemeta/forms/media.py | 31 ++++++-- telemeta/static/telemeta/css/telemeta.css | 20 ++--- .../templates/telemeta/collection_list.html | 37 ++++++--- .../telemeta/inc/collection_list.html | 6 +- .../telemeta/inc/mediaitem_list.html | 6 +- .../templates/telemeta/inc/resource_list.html | 6 +- .../templates/telemeta/mediaitem_list.html | 30 +++++-- .../templates/telemeta/resource_edit.html | 78 ++++++++++++------- .../templates/telemeta/resource_list.html | 21 +++-- telemeta/views/collection.py | 6 +- telemeta/views/item.py | 5 ++ telemeta/views/resource.py | 7 +- 12 files changed, 169 insertions(+), 84 deletions(-) diff --git a/telemeta/forms/media.py b/telemeta/forms/media.py index 785551bd..07115957 100644 --- a/telemeta/forms/media.py +++ b/telemeta/forms/media.py @@ -41,25 +41,31 @@ from extra_views.generic import GenericInlineFormSet class MediaFondsForm(ModelForm): - widget = FilteredSelectMultiple("Verbose name", is_stacked=False) - field = forms.ModelMultipleChoiceField(queryset=MediaCorpus.objects.all()) - children = forms.ModelMultipleChoiceField(widget=widget, queryset=field) + + widget = FilteredSelectMultiple("Corpus", True,) + queryset = queryset=MediaCorpus.objects.all() + children = forms.ModelMultipleChoiceField(widget=widget, queryset=queryset, label='Corpus') class Meta: model = MediaFonds exclude = ['description',] + class Media: + css = {'all': ['/static/admin/css/widgets.css',],} + js = ['/admin/django/jsi18n/',] + class MediaFondsRelatedForm(ModelForm): + class Meta: model = MediaFondsRelated class MediaCorpusForm(ModelForm): - # queryset = MediaCollection.objects.all() - # widget = FilteredSelectMultiple('children', False) - # # # field = forms.ModelMultipleChoiceField(queryset=MediaCorpus.objects.all()) - # children = forms.ModelMultipleChoiceField(widget=widget, queryset=queryset, required=True) + + queryset = MediaCollection.objects.all() + widget = FilteredSelectMultiple('Collections', False) + children = forms.ModelMultipleChoiceField(widget=widget, queryset=queryset,label='Collections') class Meta: model = MediaCorpus @@ -71,23 +77,28 @@ class MediaCorpusForm(ModelForm): class MediaCorpusRelatedForm(ModelForm): + class Meta: model = MediaCorpusRelated class MediaCollectionForm(ModelForm): + class Meta: model = MediaCollection + def clean_doctype_code(self): return self.cleaned_data['doctype_code'] or 0 class MediaCollectionRelatedForm(ModelForm): + class Meta: model = MediaCollectionRelated class MediaItemForm(ModelForm): + class Meta: model = MediaItem @@ -102,16 +113,19 @@ class MediaItemForm(ModelForm): class MediaItemRelatedForm(ModelForm): + class Meta: model = MediaItemRelated class MediaItemKeywordForm(ModelForm): + class Meta: model = MediaItemKeyword class MediaItemPerformanceForm(ModelForm): + class Meta: model = MediaItemPerformance @@ -122,14 +136,17 @@ class MediaItemPerformanceForm(ModelForm): class PlaylistForm(ModelForm): + class Meta: model = Playlist class FondsRelatedInline(InlineFormSet): + model = MediaFondsRelated class CorpusRelatedInline(InlineFormSet): + model = MediaCorpusRelated diff --git a/telemeta/static/telemeta/css/telemeta.css b/telemeta/static/telemeta/css/telemeta.css index 3f031ab0..647883f8 100644 --- a/telemeta/static/telemeta/css/telemeta.css +++ b/telemeta/static/telemeta/css/telemeta.css @@ -4,7 +4,7 @@ a {text-decoration: none; color: #969696;} a img {border: none;} body { - font: 0.9em/1em verdana, sans-serif; + font: 0.8125em/1em verdana, sans-serif; line-height: 1.3em; color: #333; background: #FFF; @@ -484,7 +484,7 @@ form.login .submit { moz-border-radius-topright: 5px 5px; border-top-right-radius: 5px 5px; font-weight: bold; - font-size: 15px; + font-size: 14px; padding: .5em 1em; } #menu a:hover, #menu a.active{ @@ -661,7 +661,7 @@ dl.listing dt.group { } dl.listing dd { margin-left: 19.4em; - /*font-weight: bold;*/ + font-weight: bold; } /* dublin core display */ @@ -723,11 +723,12 @@ dl.dublincore dd.caption { .infos dl, .infos table { position: relative; + font-size: 105%; } .extraInfos dl, .extraInfos table { position: relative; - + font-size: 105%; } .extraInfos div { @@ -778,19 +779,18 @@ dl.dublincore dd.caption { /* Pagination */ .pagination { - margin-top: .7em; - margin-bottom: .3em; + margin-top: 0em; + margin-bottom: 0em; padding: .3em 0; - font-size: 1em; + font-size: 0.7em; background-color: #fff; - border-bottom: 1px solid #aaa; + /*border-bottom: 1px solid #aaa;*/ color: #333; font-weight: bold; } .pagination a { background-color: #fff; border-bottom: none; - font-size: 1em; padding: .3em; } @@ -1160,7 +1160,7 @@ a.image-link { color:#444; text-decoration: none; margin:0; - font: 0.8em/1.2em sans-serif; + font: 1em/1.2em Verdana, sans-serif; } .component + .component, .component + .component_icon, .component_icon + .component , .component_icon + .component_icon{ diff --git a/telemeta/templates/telemeta/collection_list.html b/telemeta/templates/telemeta/collection_list.html index 191d4585..79d7cab6 100644 --- a/telemeta/templates/telemeta/collection_list.html +++ b/telemeta/templates/telemeta/collection_list.html @@ -1,27 +1,44 @@ {% extends "telemeta/base.html" %} {% load telemeta_utils %} {% load i18n %} +{% load bootstrap_pagination %} -{% block head_title %}{% trans "Media Collections" %} - {{ block.super }}{% endblock %} +{% block head_title %}{% trans "Collections" %} - {{ block.super }}{% endblock %} {% block title%} - {% trans "Media Collections" %} +
+
+ {% trans "Collections" %} ({{ page_obj.start_index }} - {{ page_obj.end_index }} / {{ count }}) +
+
+{% bootstrap_paginate page_obj range=10 show_first_last="True" %} +
+
 
+
{% endblock %} {% block title_buttons %} - {% trans "All" %} - {% trans "Unpublished" %} - {% trans "Published" %} - {% trans "Sounds" %} - {% if user.is_authenticated and perms.telemeta.add_mediacollection %} + + +
+ + +
+ + {% if user.is_authenticated and perms.telemeta.add_mediacollection %} {% trans "Add" %} - {% endif %} + {% endif %} {% endblock %} {% block content %} -{% with object_list as collections %}
{% include "telemeta/inc/collection_list.html" %}
-{% endwith %} {% endblock %} diff --git a/telemeta/templates/telemeta/inc/collection_list.html b/telemeta/templates/telemeta/inc/collection_list.html index 34744f2b..64c11409 100644 --- a/telemeta/templates/telemeta/inc/collection_list.html +++ b/telemeta/templates/telemeta/inc/collection_list.html @@ -1,9 +1,7 @@ {% load telemeta_utils %} {% load i18n %} -{% load pagination_tags %} -{% if collections %} -{% paginate %} +{% if object_list %} @@ -14,7 +12,7 @@ -{% for collection in collections %} +{% for collection in object_list %}
{% trans "Recording period" %} {% trans "Sound" %}
{{ collection.title }} diff --git a/telemeta/templates/telemeta/inc/mediaitem_list.html b/telemeta/templates/telemeta/inc/mediaitem_list.html index f3f8ae97..041f86e1 100644 --- a/telemeta/templates/telemeta/inc/mediaitem_list.html +++ b/telemeta/templates/telemeta/inc/mediaitem_list.html @@ -1,9 +1,7 @@ {% load telemeta_utils %} {% load i18n %} -{% load pagination_tags %} -{% if items %} -{% paginate %} +{% if object_list %} @@ -18,7 +16,7 @@ -{% for item in items %} +{% for item in object_list %}
{% trans "Year of recording" %} {% trans "Sound" %}
{{ item }} diff --git a/telemeta/templates/telemeta/inc/resource_list.html b/telemeta/templates/telemeta/inc/resource_list.html index b3d76f46..3dcec5a4 100644 --- a/telemeta/templates/telemeta/inc/resource_list.html +++ b/telemeta/templates/telemeta/inc/resource_list.html @@ -1,8 +1,7 @@ {% load telemeta_utils %} {% load i18n %} -{% if resources %} -{% include "pure_pagination/pagination.html" %} +{% if object_list %} @@ -11,7 +10,7 @@ -{% for resource in resources %} +{% for resource in object_list %} {% endfor %}
{% trans "Code" %} {% trans "Sound" %}
{{ resource.title }} @@ -25,6 +24,7 @@
+ {% else %}

{% trans "No resource" %}

{% endif %} diff --git a/telemeta/templates/telemeta/mediaitem_list.html b/telemeta/templates/telemeta/mediaitem_list.html index 6abe3237..014deda5 100644 --- a/telemeta/templates/telemeta/mediaitem_list.html +++ b/telemeta/templates/telemeta/mediaitem_list.html @@ -1,27 +1,43 @@ {% extends "telemeta/base.html" %} {% load i18n %} {% load telemeta_utils %} +{% load bootstrap_pagination %} {% block head_title %}{% trans "Media Items" %} - {{ block.super }}{% endblock %} {% block title %} - item {% trans "Media Items" %} +
+
+ item {% trans "Items" %} ({{ page_obj.start_index }} - {{ page_obj.end_index }} / {{ count }}) +
+
+{% bootstrap_paginate page_obj range=10 show_first_last="True" %} +
+
 
+
{% endblock %} {% block title_buttons %} - {% trans "All" %} - {% trans "Unpublished" %} - {% trans "Published" %} - {% trans "Sounds" %} + + + {% if user.is_authenticated and perms.telemeta.add_mediaitem %} {% trans "Add" %} {% endif %} {% endblock %} {% block content %} -{% with object_list as items %}
{% include "telemeta/inc/mediaitem_list.html" %}
-{% endwith %} {% endblock %} diff --git a/telemeta/templates/telemeta/resource_edit.html b/telemeta/templates/telemeta/resource_edit.html index d3499e8c..8e202ed9 100644 --- a/telemeta/templates/telemeta/resource_edit.html +++ b/telemeta/templates/telemeta/resource_edit.html @@ -1,46 +1,66 @@ {% extends "telemeta/resource_detail.html" %} {% load i18n %} {% load telemeta_utils %} +{% load bootstrap3 %} + + {% block title %} {{ type }} : {{ resource }} {% endblock %} {% block title_buttons %} {% trans "Cancel" %} - {% if perms.telemeta.add_mediacorpus or perms.telemeta.add_mediafonds %} - {% trans "Save" %} - {% endif %} {% endblock %} {% block infos %} -
-
{% csrf_token %} - - - {% for field in form %} - - - {% if "children" in field.html_name %} - - {% elif not 'description' == field.name %} - - {% endif %} - - {% endfor %} - - - - -
{% for error in form.non_field_errors %}
  • {{ error }}
  • {% endfor %}
    {{ field.errors }}
    {% trans field.label_tag %}:
    {{ field }}
    {{ field.label_tag }}: {{ field }}
    {% trans "Related media" %}:{% trans "Edit"%} {% trans "related media"%}
    -
    + +
    + {% csrf_token %} + + + +
    + +
    + + + + + {{ form.media }} + {% bootstrap_form form %} +
    + + + +
    + + +
    {% trans "Cancel" %} - {% if perms.telemeta.add_mediacorpus or perms.telemeta.add_mediafonds %} - {% trans "Save" %} + {% if perms.telemeta.change_mediacorpus or perms.telemeta.change_mediafonds %} + {% endif %} -
    - -
    -{% endblock infos%} + {# {% trans "Save" %} #} +
    + + +
    + + +{% endblock infos %} + {% block delete %} {% endblock %} diff --git a/telemeta/templates/telemeta/resource_list.html b/telemeta/templates/telemeta/resource_list.html index feda1ae1..740350ca 100644 --- a/telemeta/templates/telemeta/resource_list.html +++ b/telemeta/templates/telemeta/resource_list.html @@ -1,23 +1,30 @@ {% extends "telemeta/base.html" %} {% load telemeta_utils %} {% load i18n %} +{% load bootstrap_pagination %} {% block head_title %}{% trans type %} - {{ block.super }}{% endblock %} {% block title%} - {{ type|capitalize }} +
    +
    + {{ all_resource }} {{ type|capitalize }} ({{ page_obj.start_index }} - {{ page_obj.end_index }} / {{ count }}) +
    +
    +{% bootstrap_paginate page_obj range=10 show_first_last="True" %} +
    +
     
    +
    {% endblock %} {% block title_buttons %} - {% if perms.telemeta.add_mediacorpus or perms.telemeta.add_mediafonds %} + {% if perms.telemeta.add_mediacorpus or perms.telemeta.add_mediafonds or user.is_superuser or user.is_staff %} {% trans "Add" %} {% endif %} {% endblock %} {% block content %} -{% with object_list as resources and type as type %} -
    -{% include "telemeta/inc/resource_list.html" %} -
    -{% endwith %} +
    + {% include "telemeta/inc/resource_list.html" %} +
    {% endblock %} diff --git a/telemeta/views/collection.py b/telemeta/views/collection.py index 8b0f337d..74cdf88d 100644 --- a/telemeta/views/collection.py +++ b/telemeta/views/collection.py @@ -225,7 +225,6 @@ class CollectionPackageView(View): return super(CollectionPackageView, self).dispatch(*args, **kwargs) - class CollectionListView(ListView): model = MediaCollection @@ -233,6 +232,11 @@ class CollectionListView(ListView): paginate_by = 20 queryset = MediaCollection.objects.enriched() + def get_context_data(self, **kwargs): + context = super(CollectionListView, self).get_context_data(**kwargs) + context['count'] = self.object_list.count() + return context + class CollectionUnpublishedListView(CollectionListView): diff --git a/telemeta/views/item.py b/telemeta/views/item.py index ccbbb449..7a95d561 100644 --- a/telemeta/views/item.py +++ b/telemeta/views/item.py @@ -618,6 +618,11 @@ class ItemListView(ListView): paginate_by = 20 queryset = MediaItem.objects.enriched().order_by('code', 'old_code') + def get_context_data(self, **kwargs): + context = super(ItemListView, self).get_context_data(**kwargs) + context['count'] = self.object_list.count() + return context + class ItemUnpublishedListView(ItemListView): diff --git a/telemeta/views/resource.py b/telemeta/views/resource.py index 86cdffa2..cd36723d 100644 --- a/telemeta/views/resource.py +++ b/telemeta/views/resource.py @@ -39,7 +39,6 @@ from telemeta.views.core import * from django.utils.translation import ugettext_lazy as _ from django.forms.models import model_to_dict from django.views.generic.edit import DeletionMixin, BaseDeleteView -from pure_pagination.mixins import PaginationMixin class ResourceView(object): @@ -269,7 +268,7 @@ class ResourceSingleMixin(ResourceMixin): return context -class ResourceListView(ResourceMixin, PaginationMixin, ListView): +class ResourceListView(ResourceMixin, ListView): template_name = "telemeta/resource_list.html" paginate_by = 20 @@ -279,6 +278,10 @@ class ResourceListView(ResourceMixin, PaginationMixin, ListView): self.setup(self.type) return self.model.objects.all().order_by('code') + def get_context_data(self, **kwargs): + context = super(ResourceListView, self).get_context_data(**kwargs) + context['count'] = self.object_list.count() + return context class ResourceDetailView(ResourceSingleMixin, DetailView): -- 2.39.5