X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/0d0fa7a4cd45b477e40740a8d971ec814bc6a4a9..6d7b11e4a01b2314c0527d94d91f3159c0bd34ce:/apps/sponsors/widgets.py?ds=sidebyside diff --git a/apps/sponsors/widgets.py b/apps/sponsors/widgets.py index 2ed579370..0ddab3809 100644 --- a/apps/sponsors/widgets.py +++ b/apps/sponsors/widgets.py @@ -1,30 +1,33 @@ -from django import forms +# -*- coding: utf-8 -*- +# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# from django.conf import settings +from django import forms from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ from sponsors import models -class OrderedSelectMultiple(forms.TextInput): - """ - A SelectMultiple with a JavaScript interface. - """ +class SponsorPageWidget(forms.Textarea): class Media: js = ( 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js', - settings.MEDIA_URL + 'js/ordered_select_multiple.js', + settings.STATIC_URL + 'sponsors/js/jquery.json.min.js', + settings.STATIC_URL + 'sponsors/js/footer_admin.js', ) + css = { + 'all': (settings.STATIC_URL + 'sponsors/css/footer_admin.css',), + } - def render(self, name, value, attrs=None, choices=()): - output = [super(OrderedSelectMultiple, self).render(name, value, attrs)] - choices = [(unicode(obj), obj.pk) for obj in models.Sponsor.objects.all()] - choices_js = ', '.join('{name: "%s", id: %d}' % choice for choice in choices) + def render(self, name, value, attrs=None): + output = [super(SponsorPageWidget, self).render(name, value, attrs)] + sponsors = [(unicode(obj), obj.pk, obj.logo.url) for obj in models.Sponsor.objects.all().iterator()] + sponsors_js = ', '.join('{name: "%s", id: %d, image: "%s"}' % sponsor for sponsor in sponsors) output.append(u'\n' % - (name, choices_js)) + output.append(u'$("#id_%s").sponsorsFooter({sponsors: [%s]}); });\n' % + (name, sponsors_js)) return mark_safe(u''.join(output)) -