From 55c4ecfe7f405a123fdd83220d5fc7c7ac3d9021 Mon Sep 17 00:00:00 2001 From: Tim Richardson Date: Fri, 25 Jan 2013 17:42:23 +0000 Subject: [PATCH 1/6] updated to use staticfiles --- src/orderable/admin.py | 6 +- src/orderable/media/orderable/orderable.js | 97 ---------------------- 2 files changed, 3 insertions(+), 100 deletions(-) delete mode 100644 src/orderable/media/orderable/orderable.js diff --git a/src/orderable/admin.py b/src/orderable/admin.py index 6015d66..7ea6438 100644 --- a/src/orderable/admin.py +++ b/src/orderable/admin.py @@ -2,7 +2,7 @@ from django import forms from django.contrib import admin -from orderable.settings import JQUERY_URL, JQUERYUI_URL, ORDERABLE_MEDIA_URL +from orderable.settings import JQUERY_URL, JQUERYUI_URL, STATIC_URL class OrderableAdmin(admin.ModelAdmin): exclude = ('order',) @@ -13,7 +13,7 @@ class OrderableAdmin(admin.ModelAdmin): class Media: js = (JQUERY_URL, JQUERYUI_URL, - posixpath.join(ORDERABLE_MEDIA_URL, 'orderable/orderable.js')) + posixpath.join(STATIC_URL, 'orderable/orderable.js')) def __init__(self, *args, **kwargs): super(OrderableAdmin, self).__init__(*args, **kwargs) @@ -28,7 +28,7 @@ class OrderableInline(object): class Media: js = (JQUERY_URL, JQUERYUI_URL, - posixpath.join(ORDERABLE_MEDIA_URL, 'orderable/orderable.js')) + posixpath.join(STATIC_URL, 'orderable/orderable.js')) class OrderableStackedInline(OrderableInline, admin.StackedInline): template = 'orderable/edit_inline/stacked.html' diff --git a/src/orderable/media/orderable/orderable.js b/src/orderable/media/orderable/orderable.js deleted file mode 100644 index f80b65a..0000000 --- a/src/orderable/media/orderable/orderable.js +++ /dev/null @@ -1,97 +0,0 @@ -(function ($) { - - $(document).ready(function (event) { - - if ($('body.change-list').length > 0) { - var orderHeader = $('thead th:contains(Order)'), - orderFields = $('input[name$="-order"]'), - orderCells = orderFields.closest('td'); - - orderHeader.hide(); - orderCells.hide(); - - $('div#changelist tbody').sortable({ - items: 'tr', - handle: 'th:first', - update: function () { - var rows = $(this).find('tr'); - - rows.each(function (i) { - var row = $(this), - orderField = row.find('input[name$="-order"]'), - oldValue = orderField.val(), - newValue = i + 1; - - if (oldValue != newValue) { - row.addClass('updated-order'); - orderField.val(i + 1); - } - }); - - rows.filter(':odd').addClass('row2').removeClass('row1'); - rows.filter(':even').addClass('row1').removeClass('row2'); - } - }); - - window.onbeforeunload = function (event) { - // TODO: Make sure that explicitOriginalTarget is standard API for this event. - if ($('.updated-order').length > 0 && $(event.explicitOriginalTarget).is(':not(:submit)')) { - var verboseNamePlural = 'objects'; - if ($('#verbose-name-plural').length == 1) { - verboseNamePlural = $('#verbose-name-plural').text(); - } - return 'You have updated the order of your ' + verboseNamePlural + '.'; - } - } - } - - if ($('body.change-form').length > 0) { - $('.orderable').each(function (i) { - var inline = $(this); - - // Tabular Inlines - if (inline.is(':has(.tabular)')) { - // Hide the unnecessary, ordering fields. - inline.find('th:contains(Order)').hide(); - inline.find('td.original').hide(); - inline.find('input[name$="-order"]').closest('td').hide(); - inline.find('tbody tr.has_original').removeClass('has_original'); - inline.find('tbody tr').css('cursor', 'move'); - - inline.find('tbody').sortable({ - 'update': function (event, ui) { - var rows = inline.find('tbody tr'); - rows.each(function (i) { - var row = $(this), - orderField = row.find('input[name$="-order"]'); - orderField.val(i + 1); - }); - rows.filter(':even').addClass('row1').removeClass('row2'); - rows.filter(':odd').addClass('row2').removeClass('row1'); - } - }); - } - // Stacked Inlines - else { - inline.find('.form-row.order').hide(); - inline.find('.inline-group h3').css('cursor', 'move'); - - inline.find('.inline-group').sortable({ - 'handle': 'h3', - 'update': function (event, ui) { - var forms = inline.find('.inline-related'); - forms.each(function (i) { - var form = $(this), - orderField = form.find('input[name$="order"]'); - orderField.val(i + 1); - }); - } - }); - } - - }); - } - - }); - -})(jQuery); \ No newline at end of file From de8dfc2386220e3ffa6bddda22d0a7d15bc0cb8b Mon Sep 17 00:00:00 2001 From: tim Date: Fri, 25 Jan 2013 17:52:06 +0000 Subject: [PATCH 2/6] converting to staticfiles --- .gitignore | 3 +- setup.py | 4 +- src/orderable/static/orderable/orderable.js | 97 +++++++++++++++++++++ 3 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 src/orderable/static/orderable/orderable.js diff --git a/.gitignore b/.gitignore index 17650fe..786ecfe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,10 @@ .DS_Store *.pyc +*.sw* test.db # Ignore any files and directories created by setuptools... build/ dist/ -*.egg-info \ No newline at end of file +*.egg-info diff --git a/setup.py b/setup.py index 844bc1f..7b72cc5 100644 --- a/setup.py +++ b/setup.py @@ -17,11 +17,11 @@ 'templates/orderable/change_list.html', 'templates/orderable/edit_inline/stacked.html', 'templates/orderable/edit_inline/tabular.html', - 'media/orderable/orderable.js', + 'static/orderable/orderable.js', 'locale/*/LC_MESSAGES/django.*', ] }, install_requires = ['setuptools'], zip_safe = False -) \ No newline at end of file +) diff --git a/src/orderable/static/orderable/orderable.js b/src/orderable/static/orderable/orderable.js new file mode 100644 index 0000000..f80b65a --- /dev/null +++ b/src/orderable/static/orderable/orderable.js @@ -0,0 +1,97 @@ +(function ($) { + + $(document).ready(function (event) { + + if ($('body.change-list').length > 0) { + var orderHeader = $('thead th:contains(Order)'), + orderFields = $('input[name$="-order"]'), + orderCells = orderFields.closest('td'); + + orderHeader.hide(); + orderCells.hide(); + + $('div#changelist tbody').sortable({ + items: 'tr', + handle: 'th:first', + update: function () { + var rows = $(this).find('tr'); + + rows.each(function (i) { + var row = $(this), + orderField = row.find('input[name$="-order"]'), + oldValue = orderField.val(), + newValue = i + 1; + + if (oldValue != newValue) { + row.addClass('updated-order'); + orderField.val(i + 1); + } + }); + + rows.filter(':odd').addClass('row2').removeClass('row1'); + rows.filter(':even').addClass('row1').removeClass('row2'); + } + }); + + window.onbeforeunload = function (event) { + // TODO: Make sure that explicitOriginalTarget is standard API for this event. + if ($('.updated-order').length > 0 && $(event.explicitOriginalTarget).is(':not(:submit)')) { + var verboseNamePlural = 'objects'; + if ($('#verbose-name-plural').length == 1) { + verboseNamePlural = $('#verbose-name-plural').text(); + } + return 'You have updated the order of your ' + verboseNamePlural + '.'; + } + } + } + + if ($('body.change-form').length > 0) { + $('.orderable').each(function (i) { + var inline = $(this); + + // Tabular Inlines + if (inline.is(':has(.tabular)')) { + // Hide the unnecessary, ordering fields. + inline.find('th:contains(Order)').hide(); + inline.find('td.original').hide(); + inline.find('input[name$="-order"]').closest('td').hide(); + inline.find('tbody tr.has_original').removeClass('has_original'); + inline.find('tbody tr').css('cursor', 'move'); + + inline.find('tbody').sortable({ + 'update': function (event, ui) { + var rows = inline.find('tbody tr'); + rows.each(function (i) { + var row = $(this), + orderField = row.find('input[name$="-order"]'); + orderField.val(i + 1); + }); + rows.filter(':even').addClass('row1').removeClass('row2'); + rows.filter(':odd').addClass('row2').removeClass('row1'); + } + }); + } + // Stacked Inlines + else { + inline.find('.form-row.order').hide(); + inline.find('.inline-group h3').css('cursor', 'move'); + + inline.find('.inline-group').sortable({ + 'handle': 'h3', + 'update': function (event, ui) { + var forms = inline.find('.inline-related'); + forms.each(function (i) { + var form = $(this), + orderField = form.find('input[name$="order"]'); + orderField.val(i + 1); + }); + } + }); + } + + }); + } + + }); + +})(jQuery); \ No newline at end of file From 6db5a258233cd52b5f736a8ed9828abccc404289 Mon Sep 17 00:00:00 2001 From: tim Date: Fri, 25 Jan 2013 17:57:42 +0000 Subject: [PATCH 3/6] update settings --- src/orderable/admin.py | 6 +++--- src/orderable/settings.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/orderable/admin.py b/src/orderable/admin.py index 7ea6438..6015d66 100644 --- a/src/orderable/admin.py +++ b/src/orderable/admin.py @@ -2,7 +2,7 @@ from django import forms from django.contrib import admin -from orderable.settings import JQUERY_URL, JQUERYUI_URL, STATIC_URL +from orderable.settings import JQUERY_URL, JQUERYUI_URL, ORDERABLE_MEDIA_URL class OrderableAdmin(admin.ModelAdmin): exclude = ('order',) @@ -13,7 +13,7 @@ class OrderableAdmin(admin.ModelAdmin): class Media: js = (JQUERY_URL, JQUERYUI_URL, - posixpath.join(STATIC_URL, 'orderable/orderable.js')) + posixpath.join(ORDERABLE_MEDIA_URL, 'orderable/orderable.js')) def __init__(self, *args, **kwargs): super(OrderableAdmin, self).__init__(*args, **kwargs) @@ -28,7 +28,7 @@ class OrderableInline(object): class Media: js = (JQUERY_URL, JQUERYUI_URL, - posixpath.join(STATIC_URL, 'orderable/orderable.js')) + posixpath.join(ORDERABLE_MEDIA_URL, 'orderable/orderable.js')) class OrderableStackedInline(OrderableInline, admin.StackedInline): template = 'orderable/edit_inline/stacked.html' diff --git a/src/orderable/settings.py b/src/orderable/settings.py index 5aa3bb3..4204ab7 100644 --- a/src/orderable/settings.py +++ b/src/orderable/settings.py @@ -17,4 +17,4 @@ def is_valid(url): JQUERYUI_URL = posixpath.join(settings.MEDIA_URL, JQUERYUI_URL) ORDERABLE_MEDIA_URL = getattr(settings, 'ORDERABLE_MEDIA_URL', - settings.MEDIA_URL) + settings.STATIC_URL) From 17c32f546561656ed4034eab9aa539422708b738 Mon Sep 17 00:00:00 2001 From: tim Date: Fri, 8 Feb 2013 13:02:04 +0000 Subject: [PATCH 4/6] attempt to improve interaction with pip as per https://github.com/pypa/pip/issues/335 --- {src/orderable => orderable}/__init__.py | 0 {src/orderable => orderable}/admin.py | 0 .../locale/de/LC_MESSAGES/django.mo | Bin .../locale/de/LC_MESSAGES/django.po | 0 {src/orderable => orderable}/models.py | 0 {src/orderable => orderable}/settings.py | 0 .../static/orderable/orderable.js | 0 .../templates/orderable/change_list.html | 0 .../templates/orderable/edit_inline/stacked.html | 0 .../templates/orderable/edit_inline/tabular.html | 0 {src/orderable => orderable}/tests/__init__.py | 0 {src/orderable => orderable}/tests/admin.py | 0 .../tests/fixtures/initial_data.xml | 0 {src/orderable => orderable}/tests/models.py | 0 {src/orderable => orderable}/tests/settings.py | 0 {src/orderable => orderable}/tests/urls.py | 0 setup.py | 3 +-- 17 files changed, 1 insertion(+), 2 deletions(-) rename {src/orderable => orderable}/__init__.py (100%) rename {src/orderable => orderable}/admin.py (100%) rename {src/orderable => orderable}/locale/de/LC_MESSAGES/django.mo (100%) rename {src/orderable => orderable}/locale/de/LC_MESSAGES/django.po (100%) rename {src/orderable => orderable}/models.py (100%) rename {src/orderable => orderable}/settings.py (100%) rename {src/orderable => orderable}/static/orderable/orderable.js (100%) rename {src/orderable => orderable}/templates/orderable/change_list.html (100%) rename {src/orderable => orderable}/templates/orderable/edit_inline/stacked.html (100%) rename {src/orderable => orderable}/templates/orderable/edit_inline/tabular.html (100%) rename {src/orderable => orderable}/tests/__init__.py (100%) rename {src/orderable => orderable}/tests/admin.py (100%) rename {src/orderable => orderable}/tests/fixtures/initial_data.xml (100%) rename {src/orderable => orderable}/tests/models.py (100%) rename {src/orderable => orderable}/tests/settings.py (100%) rename {src/orderable => orderable}/tests/urls.py (100%) diff --git a/src/orderable/__init__.py b/orderable/__init__.py similarity index 100% rename from src/orderable/__init__.py rename to orderable/__init__.py diff --git a/src/orderable/admin.py b/orderable/admin.py similarity index 100% rename from src/orderable/admin.py rename to orderable/admin.py diff --git a/src/orderable/locale/de/LC_MESSAGES/django.mo b/orderable/locale/de/LC_MESSAGES/django.mo similarity index 100% rename from src/orderable/locale/de/LC_MESSAGES/django.mo rename to orderable/locale/de/LC_MESSAGES/django.mo diff --git a/src/orderable/locale/de/LC_MESSAGES/django.po b/orderable/locale/de/LC_MESSAGES/django.po similarity index 100% rename from src/orderable/locale/de/LC_MESSAGES/django.po rename to orderable/locale/de/LC_MESSAGES/django.po diff --git a/src/orderable/models.py b/orderable/models.py similarity index 100% rename from src/orderable/models.py rename to orderable/models.py diff --git a/src/orderable/settings.py b/orderable/settings.py similarity index 100% rename from src/orderable/settings.py rename to orderable/settings.py diff --git a/src/orderable/static/orderable/orderable.js b/orderable/static/orderable/orderable.js similarity index 100% rename from src/orderable/static/orderable/orderable.js rename to orderable/static/orderable/orderable.js diff --git a/src/orderable/templates/orderable/change_list.html b/orderable/templates/orderable/change_list.html similarity index 100% rename from src/orderable/templates/orderable/change_list.html rename to orderable/templates/orderable/change_list.html diff --git a/src/orderable/templates/orderable/edit_inline/stacked.html b/orderable/templates/orderable/edit_inline/stacked.html similarity index 100% rename from src/orderable/templates/orderable/edit_inline/stacked.html rename to orderable/templates/orderable/edit_inline/stacked.html diff --git a/src/orderable/templates/orderable/edit_inline/tabular.html b/orderable/templates/orderable/edit_inline/tabular.html similarity index 100% rename from src/orderable/templates/orderable/edit_inline/tabular.html rename to orderable/templates/orderable/edit_inline/tabular.html diff --git a/src/orderable/tests/__init__.py b/orderable/tests/__init__.py similarity index 100% rename from src/orderable/tests/__init__.py rename to orderable/tests/__init__.py diff --git a/src/orderable/tests/admin.py b/orderable/tests/admin.py similarity index 100% rename from src/orderable/tests/admin.py rename to orderable/tests/admin.py diff --git a/src/orderable/tests/fixtures/initial_data.xml b/orderable/tests/fixtures/initial_data.xml similarity index 100% rename from src/orderable/tests/fixtures/initial_data.xml rename to orderable/tests/fixtures/initial_data.xml diff --git a/src/orderable/tests/models.py b/orderable/tests/models.py similarity index 100% rename from src/orderable/tests/models.py rename to orderable/tests/models.py diff --git a/src/orderable/tests/settings.py b/orderable/tests/settings.py similarity index 100% rename from src/orderable/tests/settings.py rename to orderable/tests/settings.py diff --git a/src/orderable/tests/urls.py b/orderable/tests/urls.py similarity index 100% rename from src/orderable/tests/urls.py rename to orderable/tests/urls.py diff --git a/setup.py b/setup.py index 7b72cc5..07195e4 100644 --- a/setup.py +++ b/setup.py @@ -10,8 +10,7 @@ author_email = 'ted@kaemming.com', url = 'http://www.github.com/tkaemming/django-orderable/', - packages = find_packages('src'), - package_dir = {'': 'src'}, + packages = ['orderable'] package_data = { 'orderable': [ 'templates/orderable/change_list.html', From a4f096f0fa92f39a779953c6297f7e6e3f6ed0f7 Mon Sep 17 00:00:00 2001 From: tim Date: Fri, 8 Feb 2013 13:03:24 +0000 Subject: [PATCH 5/6] frac testing --- setup.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/setup.py b/setup.py index 07195e4..84c2f59 100644 --- a/setup.py +++ b/setup.py @@ -11,15 +11,15 @@ url = 'http://www.github.com/tkaemming/django-orderable/', packages = ['orderable'] - package_data = { - 'orderable': [ - 'templates/orderable/change_list.html', - 'templates/orderable/edit_inline/stacked.html', - 'templates/orderable/edit_inline/tabular.html', - 'static/orderable/orderable.js', - 'locale/*/LC_MESSAGES/django.*', - ] - }, +# package_data = { +# 'orderable': [ +# 'templates/orderable/change_list.html', +# 'templates/orderable/edit_inline/stacked.html', +# 'templates/orderable/edit_inline/tabular.html', +# 'static/orderable/orderable.js', +# 'locale/*/LC_MESSAGES/django.*', +# ] +# }, install_requires = ['setuptools'], zip_safe = False From 924926e8a5fbb85ca8b59a06758bf003ffaa614b Mon Sep 17 00:00:00 2001 From: tim Date: Fri, 8 Feb 2013 13:04:47 +0000 Subject: [PATCH 6/6] trial ad error --- setup.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/setup.py b/setup.py index 84c2f59..ecf7250 100644 --- a/setup.py +++ b/setup.py @@ -10,16 +10,16 @@ author_email = 'ted@kaemming.com', url = 'http://www.github.com/tkaemming/django-orderable/', - packages = ['orderable'] -# package_data = { -# 'orderable': [ -# 'templates/orderable/change_list.html', -# 'templates/orderable/edit_inline/stacked.html', -# 'templates/orderable/edit_inline/tabular.html', -# 'static/orderable/orderable.js', -# 'locale/*/LC_MESSAGES/django.*', -# ] -# }, + packages = ['orderable'], + package_data = { + 'orderable': [ + 'templates/orderable/change_list.html', + 'templates/orderable/edit_inline/stacked.html', + 'templates/orderable/edit_inline/tabular.html', + 'static/orderable/orderable.js', + 'locale/*/LC_MESSAGES/django.*', + ] + }, install_requires = ['setuptools'], zip_safe = False