From b5ab6830421b7147eac005470f50d0cb44080daf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <benoit.pin@gmail.com> Date: Sun, 31 Aug 2014 20:29:38 +0200 Subject: [PATCH 01/16] =?utf8?q?Callback=20ajax=20apr=C3=A8s=20d=C3=A9plac?= =?utf8?q?ement.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/photo_lightbox_viewer.js | 50 ++++++++++++++++++++++++++++------ skins/portfolio_move_photos.py | 17 ++++++++++++ 2 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 skins/portfolio_move_photos.py diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js index cffa157..f4c4498 100644 --- a/skins/photo_lightbox_viewer.js +++ b/skins/photo_lightbox_viewer.js @@ -490,25 +490,59 @@ Lightbox.prototype.onDragOver = function(evt) { if (target !== this.dragged) { target.classList.add('dragover'); } - if (this.previousDragOver && this.previousDragOver !== target) { - this.previousDragOver.classList.remove('dragover'); + if (this.lastDropTarget && this.lastDropTarget !== target) { + this.lastDropTarget.classList.remove('dragover'); } - this.previousDragOver = target; + this.lastDropTarget = target; }; Lightbox.prototype.onDragEnd = function(evt) { - if (this.previousDragOver) { - this.previousDragOver.classList.remove('dragover'); + if (this.lastDropTarget) { + this.lastDropTarget.classList.remove('dragover'); var i, slide; for(i=this.draggedSelection.length -1 ; i>=0 ; i--) { - console.log(i); slide = this.draggedSelection[i].cloneNode(true); - this.grid.insertBefore(slide, this.previousDragOver.nextSibling); + this.grid.insertBefore(slide, this.lastDropTarget.nextSibling); slide.style.opacity = 1; slide.style.width = ''; } + this.moveSelectedPhotos(); } - this.draggedSelection = this.previousDragOver = this.dragged = undefined; + // this.draggedSelection = this.lastDropTarget + this.dragged = undefined; +}; + +Lightbox.prototype.moveSelectedPhotos = function() { + var req = new XMLHttpRequest(); + self = this; + req.onreadystatechange = function() { + switch (req.readyState) { + case 1 : + showProgressImage(); + break; + case 4 : + hideProgressImage(); + if (req.status === 200) { + console.log(req.responseText); + // self._refreshGrid(req); + } + break; + } + }; + + var url = absolute_url() + '/portfolio_move_photos'; + req.open("POST", url, true); + req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); + var query = 'container_type=' + this.container_type; + var i; + for (i=0 ; i<this.draggedSelection.length ; i++) { + query += '&uids:list=' + this.draggedSelection[i].getAttribute('name'); + } + query += '&afterUid=' + this.lastDropTarget.getAttribute('name'); + req.send(query); +}; + +Lightbox.prototype.moveSelectedPhoto = function() { }; }()); \ No newline at end of file diff --git a/skins/portfolio_move_photos.py b/skins/portfolio_move_photos.py new file mode 100644 index 0000000..99c8ba1 --- /dev/null +++ b/skins/portfolio_move_photos.py @@ -0,0 +1,17 @@ +##parameters= +req = context.REQUEST +form = req.form +fg = form.get + +container_type = fg('container_type') +if container_type == 'portfolio' : + from Products.CMFCore.utils import getUtilityByInterfaceName + uidh = getUtilityByInterfaceName('Products.CMFUid.interfaces.IUniqueIdHandler') + ctool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ICatalogTool') + dropId = uidh.getBrain(int(fg('afterUid'))).getId + uids = fg('uids', []) + ids = [uidh.getBrain(uid).getId for uid in uids] + context.moveObjectsAfter(ids, dropId) + +return printed + -- 2.20.1 From 9d15a219a1b6910463064c64f9c211c606b4b5eb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <benoit.pin@gmail.com> Date: Sun, 31 Aug 2014 21:44:36 +0200 Subject: [PATCH 02/16] =?utf8?q?Traitement=20de=20la=20r=C3=A9ponse=20http?= =?utf8?q?=20lors=20d'un=20tri.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/photo_lightbox_viewer.js | 33 ++++++++++++++++++++++++++++----- skins/portfolio_move_photos.py | 7 ++++++- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js index f4c4498..3c69aec 100644 --- a/skins/photo_lightbox_viewer.js +++ b/skins/photo_lightbox_viewer.js @@ -500,8 +500,10 @@ Lightbox.prototype.onDragEnd = function(evt) { if (this.lastDropTarget) { this.lastDropTarget.classList.remove('dragover'); var i, slide; + this.pendingMovedSlides = []; for(i=this.draggedSelection.length -1 ; i>=0 ; i--) { slide = this.draggedSelection[i].cloneNode(true); + this.pendingMovedSlides.push(slide); this.grid.insertBefore(slide, this.lastDropTarget.nextSibling); slide.style.opacity = 1; slide.style.width = ''; @@ -522,10 +524,7 @@ Lightbox.prototype.moveSelectedPhotos = function() { break; case 4 : hideProgressImage(); - if (req.status === 200) { - console.log(req.responseText); - // self._refreshGrid(req); - } + self._moveSelectedPhotos(req) break; } }; @@ -542,7 +541,31 @@ Lightbox.prototype.moveSelectedPhotos = function() { req.send(query); }; -Lightbox.prototype.moveSelectedPhoto = function() { +Lightbox.prototype._moveSelectedPhotos = function(req) { + var i, slide; + if (req.status === 200) { + var doc = req.responseXML.documentElement; + if (doc.nodeName === 'ok') { + this.pendingMovedSlides = undefined; + for(i=0 ; i<this.draggedSelection.length ; i++) { + slide = this.draggedSelection[i]; + this.grid.removeChild(slide); + } + this.cbIndex = undefined; + return; + } + } + + for(i=0 ; i<this.pendingMovedSlides.length ; i++) { + slide = this.pendingMovedSlides[i]; + this.grid.removeChild(slide); + } + + for(i=0 ; i<this.draggedSelection.length ; i++) { + slide = this.draggedSelection[i]; + slide.style.opacity = 1; + slide.style.width = ''; + } }; }()); \ No newline at end of file diff --git a/skins/portfolio_move_photos.py b/skins/portfolio_move_photos.py index 99c8ba1..afee01d 100644 --- a/skins/portfolio_move_photos.py +++ b/skins/portfolio_move_photos.py @@ -11,7 +11,12 @@ if container_type == 'portfolio' : dropId = uidh.getBrain(int(fg('afterUid'))).getId uids = fg('uids', []) ids = [uidh.getBrain(uid).getId for uid in uids] - context.moveObjectsAfter(ids, dropId) + context.REQUEST.RESPONSE.setHeader('Content-Type', 'text/xml;;charset=utf-8') + try : + context.moveObjectsAfter(ids, dropId) + return '<ok/>' + except NotImplementedError : + raise return printed -- 2.20.1 From 42f8aecd3f2b63a3929bb3a0baf420c6bd47b05f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <benoit.pin@gmail.com> Date: Thu, 4 Sep 2014 22:51:23 +0200 Subject: [PATCH 03/16] =?utf8?q?Introduction=20d'un=20syst=C3=A8me=20de=20?= =?utf8?q?remise=20scriptable.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/my_cart.py | 184 ++++++++++++++++++++------------------ skins/my_cart_template.pt | 5 ++ 2 files changed, 100 insertions(+), 89 deletions(-) diff --git a/skins/my_cart.py b/skins/my_cart.py index f305a1e..e12acec 100755 --- a/skins/my_cart.py +++ b/skins/my_cart.py @@ -22,127 +22,133 @@ form = context.REQUEST.form nextStep = None if cart.locked : - pendingOrder = context.restrictedTraverse(cart.pendingOrderPath) - return context.setRedirect(pendingOrder, 'object/view', ajax=form.get('ajax')) + pendingOrder = context.restrictedTraverse(cart.pendingOrderPath) + return context.setRedirect(pendingOrder, 'object/view', ajax=form.get('ajax')) if order : - if isAnon : - atool = portal.portal_actions - came_from = '%s/my_cart' % portal_url - return context.setRedirect(atool, 'customer/login', came_from=came_from, ajax=form.get('ajax')) + if isAnon : + atool = portal.portal_actions + came_from = '%s/my_cart' % portal_url + return context.setRedirect(atool, 'customer/login', came_from=came_from, ajax=form.get('ajax')) if shipping : - member = mtool.getAuthenticatedMember() - options['shipping_fullname'] = member.getMemberFullName(nameBefore=0) - options['shipping_address'] = member.getProperty('billing_address') - options['shipping_city'] = member.getProperty('billing_city') - options['shipping_zipcode'] = member.getProperty('billing_zipcode') - options['shipping_country'] = member.getProperty('country') - return context.shipping_template(**options) + member = mtool.getAuthenticatedMember() + options['shipping_fullname'] = member.getMemberFullName(nameBefore=0) + options['shipping_address'] = member.getProperty('billing_address') + options['shipping_city'] = member.getProperty('billing_city') + options['shipping_zipcode'] = member.getProperty('billing_zipcode') + options['shipping_country'] = member.getProperty('country') + return context.shipping_template(**options) if set_shipping : - fg = lambda name : form.get(name,'').strip() - if context.shipping_set_control(**form) : - order = pptool.addPrintOrder(cart) - return context.setRedirect(order, 'object/view', ajax=fg('ajax')) - else : - for name in [ 'shipping_fullname' - , 'shipping_address' - , 'shipping_city' - , 'shipping_zipcode' - , 'shipping_country'] : - options[name] = fg(name) - return context.shipping_template(**options) + fg = lambda name : form.get(name,'').strip() + if context.shipping_set_control(**form) : + order = pptool.addPrintOrder(cart) + return context.setRedirect(order, 'object/view', ajax=fg('ajax')) + else : + for name in [ 'shipping_fullname' + , 'shipping_address' + , 'shipping_city' + , 'shipping_zipcode' + , 'shipping_country'] : + options[name] = fg(name) + return context.shipping_template(**options) if isAnon : - nextStep = {'name':'order', 'value' : _('Order >>')} + nextStep = {'name':'order', 'value' : _('Order >>')} else : - nextStep = {'name':'shipping', 'value' : _('Shipping >>')} - + nextStep = {'name':'shipping', 'value' : _('Shipping >>')} + msg = '' for k, v in form.items() : - if hasattr(v, 'items') : - uid, templateId = k.split('_',1) - if v.has_key('refresh') : - quantity = v['quantity'] - try : - quantity = int(quantity) - except ValueError: - msg = _('You must enter an integer for quantity (found: %s)') % quantity - if quantity <= 0 : - msg = _('You must enter a positive value for quantity (found: %s)') % quantity - if not msg : - item = {'cmf_uid' : uid - ,'printing_template' : templateId - ,'quantity' : quantity} - try : - cart.update(context, item) - except SoldOutError, e : - n = e.n - if n > 1 : - msg = _("Only %d available copies of this photo in this size.") % n - elif n == 1 : - msg = _("Only one last available copy of this photo in this size.") - else : - msg = _("No more available copy of this photo and in this size.") - - - if v.has_key('delete'): - cart.remove(context, uid, templateId) + if hasattr(v, 'items') : + uid, templateId = k.split('_',1) + if v.has_key('refresh') : + quantity = v['quantity'] + try : + quantity = int(quantity) + except ValueError: + msg = _('You must enter an integer for quantity (found: %s)') % quantity + if quantity <= 0 : + msg = _('You must enter a positive value for quantity (found: %s)') % quantity + if not msg : + item = {'cmf_uid' : uid + ,'printing_template' : templateId + ,'quantity' : quantity} + try : + cart.update(context, item) + except SoldOutError, e : + n = e.n + if n > 1 : + msg = _("Only %d available copies of this photo in this size.") % n + elif n == 1 : + msg = _("Only one last available copy of this photo in this size.") + else : + msg = _("No more available copy of this photo and in this size.") + + + if v.has_key('delete'): + cart.remove(context, uid, templateId) options['empty'] = not cart infos = [] prices = [] quantityTotal = 0 for item in cart : - b = uidh.getBrain(item['cmf_uid']) - poptions = pptool.getPrintingOptionsContainerFor(b.getObject()) - pt = getattr(poptions, item['printing_template']) - size = b.getThumbnailSize - d = {'thumbUrl' : '%s/getThumbnail' % b.getURL() - ,'thumbHeight' : size['height'] / 2 - ,'thumbWidth' : size['width'] / 2 - ,'alt' : ('%s - %s' % (b.Title, b.Description)).strip(' -') - ,'cmf_uid':b.cmf_uid - ,'title': pt.title - ,'description': pt.description - ,'quantity':item['quantity'] - ,'amount': '%s â¬' % (pt.price * item['quantity']).taxed - ,'templateId': pt.getId() - } - quantityTotal += item['quantity'] - prices.append(pt.price * item['quantity']) - infos.append(d) + b = uidh.getBrain(item['cmf_uid']) + poptions = pptool.getPrintingOptionsContainerFor(b.getObject()) + pt = getattr(poptions, item['printing_template']) + size = b.getThumbnailSize + d = {'thumbUrl' : '%s/getThumbnail' % b.getURL() + ,'thumbHeight' : size['height'] / 2 + ,'thumbWidth' : size['width'] / 2 + ,'alt' : ('%s - %s' % (b.Title, b.Description)).strip(' -') + ,'cmf_uid':b.cmf_uid + ,'title': pt.title + ,'description': pt.description + ,'quantity':item['quantity'] + ,'amount': '%s â¬' % (pt.price * item['quantity']).taxed + ,'templateId': pt.getId() + } + quantityTotal += item['quantity'] + prices.append(pt.price * item['quantity']) + infos.append(d) options['infos'] = infos if len(prices) == 1: - pricesTotal = prices[0] + pricesTotal = prices[0] elif len(prices) > 1 : - pricesTotal = reduce(lambda a, b : a + b, prices) + pricesTotal = reduce(lambda a, b : a + b, prices) + if prices : - options['pricesTotal'] = pricesTotal - options['quantityTotal'] = quantityTotal - shippingFees = pptool.getShippingFeesFor(price=pricesTotal) - options['shippingFees'] = shippingFees - options['totalAmount'] = pricesTotal + shippingFees + options['pricesTotal'] = pricesTotal + options['quantityTotal'] = quantityTotal + discount = 0 + if context.get('photoprint_discount') : + discount = context.photoprint_discount(pricesTotal, quantityTotal) + options['discount'] = discount + shippingFees = pptool.getShippingFeesFor(price=pricesTotal) + options['shippingFees'] = shippingFees + coeff = (100 - discount) / 100. + options['totalAmount'] = pricesTotal * coeff + shippingFees breadcrumbs = [ - { 'id' : 'root' - , 'title' : portal.title - , 'url' : portal_url}, + { 'id' : 'root' + , 'title' : portal.title + , 'url' : portal_url}, - {'id' : 'my_cart' - ,'title' : _('My cart') - , 'url' : '%s/my_cart' % portal_url} - ] + {'id' : 'my_cart' + ,'title' : _('My cart') + , 'url' : '%s/my_cart' % portal_url} + ] options['breadcrumbs'] = breadcrumbs if msg : - context.REQUEST.other['portal_status_message'] = msg + context.REQUEST.other['portal_status_message'] = msg options['cartIsOrder'] = False options['nextStep'] = nextStep return context.my_cart_template(**options) diff --git a/skins/my_cart_template.pt b/skins/my_cart_template.pt index b05a499..bdafd8c 100644 --- a/skins/my_cart_template.pt +++ b/skins/my_cart_template.pt @@ -76,6 +76,11 @@ <td tal:content="python:'%s â¬' % options['pricesTotal'].taxed">prices total</td> <td colspan="2"><br/></td> </tr> + <tr tal:define="discount options/discount" tal:condition="discount"> + <th colspan="3" style="text-align:right;padding-right:1em" i18n:translate="">Discount</th> + <td><span tal:replace="discount"/>%</td> + <td colspan="2"><br/></td> + </tr> <tr> <th colspan="3" style="text-align:right;padding-right:1em" i18n:translate="">Shipping</th> <td tal:content="python:'%s â¬' % options['shippingFees'].taxed">2</td> -- 2.20.1 From 01d91dfe8e676a59d83166eba69a55cff7796bd1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <benoit.pin@gmail.com> Date: Thu, 4 Sep 2014 23:28:18 +0200 Subject: [PATCH 04/16] maniaquerie --- skins/my_cart_template.pt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skins/my_cart_template.pt b/skins/my_cart_template.pt index bdafd8c..3fe3747 100644 --- a/skins/my_cart_template.pt +++ b/skins/my_cart_template.pt @@ -78,7 +78,7 @@ </tr> <tr tal:define="discount options/discount" tal:condition="discount"> <th colspan="3" style="text-align:right;padding-right:1em" i18n:translate="">Discount</th> - <td><span tal:replace="discount"/>%</td> + <td><span tal:replace="discount"/> %</td> <td colspan="2"><br/></td> </tr> <tr> -- 2.20.1 From f7e548f8e74520f1ff8b9ad72ff40ed0d4126773 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <benoit.pin@gmail.com> Date: Fri, 5 Sep 2014 00:24:56 +0200 Subject: [PATCH 05/16] localisation++ --- locales/en/LC_MESSAGES/portfolio.po | 20 ++++++++++++-------- locales/fr/LC_MESSAGES/portfolio.mo | Bin 7387 -> 7419 bytes locales/fr/LC_MESSAGES/portfolio.po | 24 ++++++++++++++---------- locales/portfolio.pot | 22 +++++++++++++--------- 4 files changed, 39 insertions(+), 27 deletions(-) diff --git a/locales/en/LC_MESSAGES/portfolio.po b/locales/en/LC_MESSAGES/portfolio.po index 09f46f3..e6d88cf 100644 --- a/locales/en/LC_MESSAGES/portfolio.po +++ b/locales/en/LC_MESSAGES/portfolio.po @@ -74,15 +74,15 @@ msgstr "" msgid "Lightbox created." msgstr "" -#: o/skins/lightbox_view.py:53 +#: o/skins/lightbox_view.py:51 msgid "Photo removed." msgstr "" -#: o/skins/lightbox_view.py:55 +#: o/skins/lightbox_view.py:53 msgid "Removed photos." msgstr "" -#: o/skins/lightbox_view.py:57 +#: o/skins/lightbox_view.py:55 msgid "Nothing to remove." msgstr "" @@ -116,7 +116,7 @@ msgstr "" msgid "No more available copy of this photo and in this size." msgstr "" -#: o/skins/my_cart.py:138 o/skins/my_cart_template.pt:113 +#: o/skins/my_cart.py:144 o/skins/my_cart_template.pt:118 msgid "My cart" msgstr "" @@ -148,19 +148,23 @@ msgstr "" msgid "Total" msgstr "" -#: o/skins/my_cart_template.pt:80 o/skins/sell_macros.pt:16 +#: o/skins/my_cart_template.pt:80 +msgid "Discount" +msgstr "" + +#: o/skins/my_cart_template.pt:85 o/skins/sell_macros.pt:16 msgid "Shipping" msgstr "" -#: o/skins/my_cart_template.pt:85 +#: o/skins/my_cart_template.pt:90 msgid "VAT" msgstr "" -#: o/skins/my_cart_template.pt:90 +#: o/skins/my_cart_template.pt:95 msgid "Total amount to pay" msgstr "" -#: o/skins/my_cart_template.pt:114 +#: o/skins/my_cart_template.pt:119 msgid "Your cart is currently empty." msgstr "" diff --git a/locales/fr/LC_MESSAGES/portfolio.mo b/locales/fr/LC_MESSAGES/portfolio.mo index 400e2cc169966841099ff3430814d5cd92fb9e51..47e28696ad121ba16980a628598faaf46db37ca5 100644 GIT binary patch delta 2462 zcmYk-Urg0y9LMpmLU2GuKu`>mLlH&>9uJ5DDpG)$k${4!fgv30l>AYuo66rs!Y1Pa zbImqdR&#mL2HEkdE!WZuofp-dmN`vnI+x2Xw8>^o-=E)k+Ir^q_j;b^{Lb^|`#c9P zRot)eu4E>DXp~-J0Wp$brjCD-cu<;B%u2BtGjI^+;vt-Y<Cu=$U>csqWc(HN{-o=_ zi&?Z2Qq44U4kns;mKU#B0nX%uBGdro&ef<d)Z-j%#M#)1TEK41#P^VYHp(M_V>k<s zU<kiPE%bNP_wQnW`7M!AG{7u;1cRsn3Q;>)f?9cv>u*CgW7|;+jiMI58`+WV#bSIP z%kdb7@g{1XTwazXn8o~7<2u@~jCK@P;3ues{EV9DDk{Y{Q4720+9_;P3(UcJSnS$$ zm_vIj>c|E#h{LFHzeG=!<5cwGx2RNKK&9%k^EPV74^Z!?unHYTCMuPMsGXN1S+y#B z9P3f<N0H6j9@HJ%i^{-Q8u>4vGERq5f6jRkHNkJFf$yLeIECC#%V1Uwn2ifDA0NXt zsLXYsGI0o%`U&^>B(A2d-DzRf={kQZ4RmPdji{Y(;-P^fsMPI4eLjX{-9ATsZvsh* z9Y+oLJt|XYQJFZ8tl6%*&;N4$Q?8xhagaLOnWzD>@W*NF2CHe`CQnqYgmm~jM729m z8R<u*azAREk5LmJK}|e?%ESrx`32NQuAnmRU8kZQ-9qhX%DwO}YA1=@tVb~o>9QhJ z>Q}k`b*KruQ3Ln6{<m>0?E}bW?V|G!)c5b>eEt5Dv*RntM-8+HwX-m4;`OM^>_m>w z`cUtAsMHU;&p*N{+MhWuJLhwLx^%6mOzlA?wn0qS@Bc8BdOE(s=kOjXBUR*06E~nz z-i%sU7iuBzq82#f`i~<2>^mNs@E6R(zi|m>^JOi(4mExg7BauJQ_<P&L#22GwbD;f zUx=ZO;so-~PV>-$uAx$S2lc%N7{)nlPw&^GKM_7fyB*284dEgjLr<6BBo%oE*}VOL zx(hcj7jL0{cFAm43z~sX;#}uStfjpJ_5M**CQsrMm`tbc!eZ2d2T*s#%O(F>=@1<p zmyO~met~SpmXk-l*o4~2X4H{%qf*`D`UjmKpl<zP)Oh2r{}gJTpHSmnLTzMn0r}S@ z`jZZRb^bljN^1xeeMx7i^IJyfCaY|TW8F@%oltr;aW$d8AG#+m5t>X#TtO(aMTAN( z^ZVr$o=Rzh--<svU@6f<X!k0*7gc`EYy)m|^=;Vh>iRpOqNCI?G!Z(UH;Dh2RWv+Z z1Qne>S@+NDS*#>TieGl|%y;z{Q7Kl|blG%Fn+cVbgf3cyc!AhNsJupW5^IQZqLt7E zZZvE0&v6}%|4IRsHlmo&e<F3n(?lupJi%SGtwfaY|CXal38BmN%)w)Ud0v;gDBM6> z?APKC{Z3kl*InPMs2jC{2ofRUWulCjPUyBY6DsTD*mB(I>S70xKoqJ`@J|1(NM~$q zO6{~jZFHck@2%c9W5cNvNwYUb`h&q`!BD6&Tv{0lA8g22m|9UBiuaVo`ZI1!Pil$u ML<b_V)~unxLt5L;MF0Q* delta 2415 zcmXxlYiO5M9Ki82HJzI7?y`AVHs?yGyX&_8>D<Li&8amnS!?BH>4X^=fzaP96A?lh zjzW+?gX~37dsEpWqm))*7%NC{Z^S|NLRdy(P~Y!=XNUd%pYxpOdCui`&ZBo~uhb^5 zW=}d1D0_)H#2XVsu;I_i{7_a+4WSYnFbntNEIfkK@f2p_hd2|@;S?N1pT8X2uVF6N zqiEOZ(?XaOLNa8GRYES_&5hY;2gT8)=nFNNg9*&QjpzhAFdO$Gf8iiMGw>Le;k)Pr z2hsPgU^?EwY{n0NQMrqTDfH%z8R*Psp))Rt?FnS^p#_~_D>~t=$Vx&dmf~)#!FR9% zFQF5hz{8q{seZj?{E(nhg{`;(52F+L3LWSon%Ya~#IDBcn`lS>VLs-vY_FH#J=lP5 z)pjhzeQ3XLM^9qX2hUJ3#RF)nzKsr{E544tcoW@%+h{6hFe_I+7fE7RfD5n`eZCc0 zeAtGbtxhxphp-4w%q0J&{tFuPYjl7MXve>!6C6g)W%vi}@L!yV>C9p-E<!WcjAr6h zH1&P){`dGW*CXh}idm)oFUutVuDpr{S6<JL9j`-Ew+Fp{2+49dioV!~Bq5wcJ3NbK z>QgimUm|l17vue3WBYKt{sZ0G(PV76gFmOyIUBr^8$;yDz0M;YsTHEv&1goppsDOZ zJ9-@*_!v5HADW5x<NX12A>W~y{t;bJ@-h`yG#nqehOXoW-ix=8zmUnvGWA7hdl@?5 z+IZcDYq;KrtR;LN9Yo)|g0pc1oj_V%>iuMxLd6wjqa80sQ`&-TSJ;3K)Q+Zncf9`! z)^q(@bRc>gJ#5wNpBdVO4%~@OEQu|692@=qf1_e53dolOm!PRGM<>>ZPGko<!S2|8 z1o;c^@#BD>;d~szWq1pn_(D3d|1vDb1iEEAF^BO(Hx*}k5PhK+-GWodU-*C@Cv+Z7 z<uB-#3}Xe3qR$tz%+x?w!gT`4cId)IcmPfP>F8NB8{uOro`DNkfIpz0+Xy<L8@Lev zj?N(sO<b==pFe_)cpC4=5%erf=cW_hj2^yrbfR6zE`^=~@_(Gln>4V9kWU_cunb+v za&$|YkZgwavAr|;5_;N`Xoqjb_A}@}pP>DnLl^Q5dWL>NKDN;8{<lzBMOb{v?|&&# zMR;H=TgM2`N97s9^g6KrxcHfRPPPyZ<{qyg%&gmC**ivP$0B0Qc*nLsO_UMcgsZoB zF6vUX5FW=(vA!L5#5#*f6}NIVv4LppJ)fSFe27{xVR7f#m()Md4OmN%_Eg!!Z{b)q ztVeTdp2`U~x{a{Z6P~1<#9CrAVcA7IOROZSi6;n7Y+G1I#f^J}7%!fXCy6D*eZ&jI z1B6HUQNn|;jo3{ji1AWN#nZHyrR67|i_IL#@L;TqAI3)FMK35_ghyyOF`w|ue2S<f zCJ-KvR>Jbw7^(lgJ7Zlsh>3*XKqxxU)7{z8zh!DuTK}18A5G3^*uSf=qPDQSvaY(i cuCltfBWvEY6{WGIrvGTx^$Gni=N?Y~ADULk-v9sr diff --git a/locales/fr/LC_MESSAGES/portfolio.po b/locales/fr/LC_MESSAGES/portfolio.po index 00a754f..edfe697 100644 --- a/locales/fr/LC_MESSAGES/portfolio.po +++ b/locales/fr/LC_MESSAGES/portfolio.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: Plinn 2.0\n" -"POT-Creation-Date: Fri Aug 29 13:55:35 2014\n" -"PO-Revision-Date: 2014-08-29 13:56+0200\n" +"POT-Creation-Date: Fri Sep 5 00:23:02 2014\n" +"PO-Revision-Date: 2014-09-05 00:24+0200\n" "Last-Translator: Benoît PIN\n" "Language-Team: CRI http://cri.ensmp.fr\n" "Language: \n" @@ -97,15 +97,15 @@ msgstr "Vous devez entrer un titre." msgid "Lightbox created." msgstr "Table lumineuse créée." -#: o/skins/lightbox_view.py:53 +#: o/skins/lightbox_view.py:51 msgid "Photo removed." msgstr "Photo retirée." -#: o/skins/lightbox_view.py:55 +#: o/skins/lightbox_view.py:53 msgid "Removed photos." msgstr "Photos retirées." -#: o/skins/lightbox_view.py:57 +#: o/skins/lightbox_view.py:55 msgid "Nothing to remove." msgstr "Rien à retirer." @@ -141,7 +141,7 @@ msgstr "Livraison >>" msgid "No more available copy of this photo and in this size." msgstr "Plus aucun tirage disponible pour cette photo à ce format." -#: o/skins/my_cart.py:138 o/skins/my_cart_template.pt:113 +#: o/skins/my_cart.py:144 o/skins/my_cart_template.pt:118 msgid "My cart" msgstr "Mon panier" @@ -173,19 +173,23 @@ msgstr "Tirages" msgid "Total" msgstr "Total" -#: o/skins/my_cart_template.pt:80 o/skins/sell_macros.pt:16 +#: o/skins/my_cart_template.pt:80 +msgid "Discount" +msgstr "Remise" + +#: o/skins/my_cart_template.pt:85 o/skins/sell_macros.pt:16 msgid "Shipping" msgstr "Livraison" -#: o/skins/my_cart_template.pt:85 +#: o/skins/my_cart_template.pt:90 msgid "VAT" msgstr "TVA" -#: o/skins/my_cart_template.pt:90 +#: o/skins/my_cart_template.pt:95 msgid "Total amount to pay" msgstr "Montant total à payer" -#: o/skins/my_cart_template.pt:114 +#: o/skins/my_cart_template.pt:119 msgid "Your cart is currently empty." msgstr "Votre panier est actuellement vide." diff --git a/locales/portfolio.pot b/locales/portfolio.pot index fd5694f..fca8f26 100644 --- a/locales/portfolio.pot +++ b/locales/portfolio.pot @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: 3.0\n" -"POT-Creation-Date: Fri Aug 29 13:55:35 2014\n" +"POT-Creation-Date: Fri Sep 5 00:23:02 2014\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Zope 3 Developers <zope-dev@zope.org>\n" @@ -106,15 +106,15 @@ msgstr "" msgid "Lightbox created." msgstr "" -#: o/skins/lightbox_view.py:53 +#: o/skins/lightbox_view.py:51 msgid "Photo removed." msgstr "" -#: o/skins/lightbox_view.py:55 +#: o/skins/lightbox_view.py:53 msgid "Removed photos." msgstr "" -#: o/skins/lightbox_view.py:57 +#: o/skins/lightbox_view.py:55 msgid "Nothing to remove." msgstr "" @@ -155,8 +155,8 @@ msgstr "" msgid "No more available copy of this photo and in this size." msgstr "" -#: o/skins/my_cart.py:138 -#: o/skins/my_cart_template.pt:113 +#: o/skins/my_cart.py:144 +#: o/skins/my_cart_template.pt:118 msgid "My cart" msgstr "" @@ -190,19 +190,23 @@ msgid "Total" msgstr "" #: o/skins/my_cart_template.pt:80 +msgid "Discount" +msgstr "" + +#: o/skins/my_cart_template.pt:85 #: o/skins/sell_macros.pt:16 msgid "Shipping" msgstr "" -#: o/skins/my_cart_template.pt:85 +#: o/skins/my_cart_template.pt:90 msgid "VAT" msgstr "" -#: o/skins/my_cart_template.pt:90 +#: o/skins/my_cart_template.pt:95 msgid "Total amount to pay" msgstr "" -#: o/skins/my_cart_template.pt:114 +#: o/skins/my_cart_template.pt:119 msgid "Your cart is currently empty." msgstr "" -- 2.20.1 From 821f2dd54fd8a66a73d7a4c8b99331fbe7476d86 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Thu, 18 Sep 2014 14:59:18 +0200 Subject: [PATCH 06/16] maj et compilation traductions anglaises. --- locales/en/LC_MESSAGES/portfolio.mo | Bin 0 -> 6838 bytes locales/en/LC_MESSAGES/portfolio.po | 246 ++++++++++++++++------------ 2 files changed, 137 insertions(+), 109 deletions(-) create mode 100644 locales/en/LC_MESSAGES/portfolio.mo diff --git a/locales/en/LC_MESSAGES/portfolio.mo b/locales/en/LC_MESSAGES/portfolio.mo new file mode 100644 index 0000000000000000000000000000000000000000..8ba607f355f39645c2f86c789b9247e3ef2a4e54 GIT binary patch literal 6838 zcmeI0UyL199mfxpf-azd3JQY9(k&Ev?{2p(l)F&6-QBheyY15577NHSd*|%lp>t=h zGjn%)t0Y2vfP|Q!#Ypr45*2yqgMS_jAtWZCZ^jZ8Uoa-d7ap4U;=icz^PM@{?JhC# z(Zo*nH=pzW{Lb(9J7><_-(7dvi-spfK8>8-V2lc`x`G$a6CXC_IvBtmuz=UX@5Afi z>+ni=7G4A2gCBwCpoaJ-RQrv6Rrw9@<K(x%%i%D*4DRzh0IwoH3Dy6&X8_ecf**q& z_)+*3sQFJr>G?9`&-{qjhv1v=YWQ<F2!9Qw=jC)#{~Ms%-3HZv5N?E{zI*~o|07U( zhrYZAS(<qUO3&w^^ga!>o>yQEeh=OSe+7r&l{C^kdpsY4<+wiIgFC5z9`1%eh0^cu zQ1fhHF|zNKP<q|y^V^`t8HP8&X`gSwPm+HM%3t4r7M_6`_ZOb;Lbdxnl%4+uWhYH0 zUJJF}O;G)|LHS`9lpQCa)_ojeV)HoM1S6>S&qGXLUWAIXSD@_hCfp3qLfQS#p8tRv z|566mxYtAJcM~K;%}%KCcEelX7`z!aq3rfFlpS7&vim!}ej|(7L;hAMz2>3DKLNGw z4&=`)^U}D_LfP$AsQNb{t}t&y^?L_mD)TPXcz=Yl(>W+R{1vhkvjJzR{yM1gn|yu? zlwSvY{%$yZi7|Vj?DGOI?Yr+lip+1J^m!j@{g+@QrZ87S&2tOXcr~c@yL|ZpsQ5Sr zwT=@|`e&ZYQ0w{<RR8BZUw~@=66DXk%nMVRA4ARm7DN^EOQ?1I0cxG+pzQJ&I0!c~ zx%9jXs{a9~b`L}Ke*((?xi9ZQ>HiGm&z$z<uR+=OhfsRH0j2j_Q0qAhYw$Nv`|h$& zRQ?}^nkVsm8q&m^_W9S~PV#R+#m}Fh^t%INYn~lY_8o@O>j9sC3~HPcQ1SL<pZ_LQ zyq<ylnV<2p@I9z;|K)iFoz(6cC_8V3veTgF2-JFyK=peJVp8Lv?AU`^_j6G8|0>kJ zdkL!j8&H0F8*1O3g|fprxEWr;<g)t~&uviS4?&H)AM$4&<fVNVLXFpg+8+hfzWX}d z4SxU`+Pn{k;H96c>UTlyyBR3Gz6Le^x1iSjGSs?Xg(3V2l-+K=v8vw*<>z6jeg~oA zYYJ+-N1^N#LfIjK@>kE-KkLh1@cC~;`SrU#e+IJc%mL&evJcUtu`Hq(z6+7>^*mC+ zI8WgTgs>^~-U~m2Xidiv*-Uyi5ZU_<L{D151aJ#7;q$^AA{!=%)~ZLoxwlMlPQY28 zehfbD)AEZR`C$xs2pLCW<ibb(xZM}X2a1o)$S5+5$gg_Zh+<05VMK8!+wMSclldH? z=RRaBvVcq>M-e>{GLMWPcO%CT#o!@?Ffk7xD^EX(hmksRE3zNC6Vcv$5W!96QRGSF zeq`ktAffoEtrT3qOGzuH^xTAOD^t}=dv^vo;mcZ3adZ#zS!6r%d1M!&_*cvvLG(;k zDC2(7r-de>7`;uI&0iclerRNBVsviw@S)l9L$gm&)QMe?ySX@BjFP8pv|xK_*DeQ1 zVT;t}!IHB@E6Q!|V%IF9G^v~Z_CS9)(0|<aA8hnbHTq{ve{O>?bYa<Lwc$uumNbK` zFg|^L7!_0<R9#m#b9rt?+G&@$Z;z5@Y>VLJRx{EqS}rM~W}xZKzMy$R^K{azSV-e2 zt=H>jG)S5*2Fx@X6+JVWCJRy4uDXnB$c)0w1%(UE7%CRd!*-aL@vEj)RcJe{v`F(h zZSrOob;_AZmuo}q^VLz?B{^#4W-Q8^n#YWXQDNJz2*RKU%y_#~^la1)7G1-3J8>F> zHb|-hyAZ|BMv2{|KATwXeBF0AZ>PH1-;HC77S1L1_JyrwJ_*{+9E?I|7t)OJ(xivo zax<ZM%!97CoMvHeCZokxF`u5a^w!GjW>WJrW4pKNQ8Sf>(L#h_rg}Dr=ezA(snTum zyej69J6V`RX<5U>-6X8r<7qdeNiHMUcF?meg^WAdi89Sc>vozs8!QD;9L%%aX4>i5 zbfJo>(vIj~>Qu#9bjtmg-B`xjF4br&PSPmUCyR=fuypylqN?SZ!pybPB@{TE#68=O zt1i?#a``&V*Q!u<N)u<}ATQQ-UBBdY9kbA7cF!I&9rOsO!b~gtywX^4CA+$`s-)6Z z4a!Yy>B=~PZL$SESXk|X50opG))yw)&)SdcDo#Zm92l;)&s|~jR@CXp&QU@%R(mct z)0ta}+;XEzC^)CHh;2-}s#WRsqStX%h3eBLQ`)>>8!LEL3(`*Kf`T+N4|O@Aw9${0 z4qJ2Z__EbqIzvbry=;){v?!C!ZkA!M)$pd$#(u+?8Na6U33+FwaLq!?GZJNITIuq- z-8id*le3X`5VHeA4g$rjTb;CSW}_l@W;QK?xO&^5Is$dZ1wAt>3mr|$gJU5}+iSP( zv5{GGEQlk{8YdOmjy7PwIS!OE^rZr;Dq0)^jj}pSliP}Fn+A#B@V4hTgVnj+C3IKf zsFUUlgWZ;bxLchyU+{+KDAEDYV0~LZ*b&#n1j+gVIroUrMPgLP)_)o*s}2|x_da4P zIvu0sfUC7}+C1UHMql*>BQD#dFhfsA(u#XI2Q^)k<t*?KAHHUukBF(x1QVvqm32E& zv*>2dtOUW_%66OMIE#a%{6gfW{8G*p>6|`}Wt;Nr&<>I=E^L=)ssC0bIxv%zAfst0 zBOAUpOObZN%IX^?a|@18Y`QYZu50-aFnKFY<wld^VWNf*GdbTqiW=rrN-#u8#k9+z zk)==ajjm0EwPP;Rf!we=>VtjLhi7Z$r;n1_7=hBT`?JW-xQ?~E?BHNyXh&mk$PNu| z-$~or5foHs-&Do5!Fy`kciZhd8@uklb8u*Iuy2wRt~Q$mNgfA9nla+h$w|xQV%*+4 zJ~c8ixp!o2?8x}c%pRI1i(NiTwOJRm8}^a3<LnMQ=9XMcGRy6~r(i8~OM8{5r`h73 zzNv|+@zqsqXBB+W3*xe-{m`%lmL0$;Q8H|stsvtZy6@=h{@U)<c2W+**2WV~ELqI% zo{x&Y11@oyK8Ce@y@u6{13{-VKrjWd%Lf=Y3z|i})9br<U%Gf-x_Do@;0kr|zNE|5 z#rsnAL-68#Y5nzv-=zPK_oechTV9&1ers}XTe&zjs^7Uecix~V|FKZj*o3?Ca>Vc2 ipj)K+#lXjxTi!f(obskrUX$sfuX6QIhyU4I*S`U}!?RKV literal 0 HcmV?d00001 diff --git a/locales/en/LC_MESSAGES/portfolio.po b/locales/en/LC_MESSAGES/portfolio.po index e6d88cf..fe3e5c7 100644 --- a/locales/en/LC_MESSAGES/portfolio.po +++ b/locales/en/LC_MESSAGES/portfolio.po @@ -1,444 +1,472 @@ +# ############################################################################# +# +# Copyright (c) 2003-2004 Zope Foundation and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +# ############################################################################# +msgid "" +msgstr "" +"Project-Id-Version: 3.0\n" +"POT-Creation-Date: Fri Sep 5 00:23:02 2014\n" +"PO-Revision-Date: 2014-09-18 14:57+0200\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Zope 3 Developers <zope-dev@zope.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: zope/app/locales/extract.py\n" + #: o/ImageManipulationTool.py:40 msgid "Processor" -msgstr "" +msgstr "Processor" #: o/ImageManipulationTool.py:56 msgid "Process started." -msgstr "" +msgstr "Process started." #: o/ImageManipulationTool.py:64 msgid "Process stopped." -msgstr "" +msgstr "Process stopped." #: o/skins/add_to_cart.py:20 o/skins/my_cart.py:73 msgid "You must enter an integer for quantity (found: %s)" -msgstr "" +msgstr "You must enter an integer for quantity (found: %s)" #: o/skins/add_to_cart.py:23 o/skins/my_cart.py:75 msgid "You must enter a positive value for quantity (found: %s)" -msgstr "" +msgstr "You must enter a positive value for quantity (found: %s)" #: o/skins/add_to_cart.py:49 o/skins/my_cart.py:85 msgid "Only %d available copies of this photo in this size." -msgstr "" +msgstr "Only %d available copies of this photo in this size." #: o/skins/add_to_cart.py:51 o/skins/my_cart.py:87 msgid "Only one last available copy of this photo in this size." -msgstr "" +msgstr "Only one last available copy of this photo in this size." #: o/skins/add_to_cart.py:53 msgid "No more available copy of this photo in this size." -msgstr "" +msgstr "No more available copy of this photo in this size." #: o/skins/add_to_cart.py:62 msgid "" "Your cart is locked:\n" "please complete your current order first." msgstr "" +"Your cart is locked:\n" +"please complete your current order first." #: o/skins/add_to_cart.py:72 o/skins/add_to_cart.py:74 msgid "Added to cart." -msgstr "" +msgstr "Added to cart." #: o/skins/add_to_selection.py:37 msgid "%s added to selection." -msgstr "" +msgstr "%s added to selection." #: o/skins/add_to_selection.py:39 msgid "This %s is already in the selection." -msgstr "" +msgstr "This %s is already in the selection." #: o/skins/get_slide_buyable_items.pt:21 o/skins/photo_layout_macros.pt:51 #: o/skins/photo_layout_macros.pt:54 o/skins/photo_view.pt:91 #: o/skins/photo_view.pt:94 msgid "Add to cart" -msgstr "" +msgstr "Add to cart" #: o/skins/get_slide_buyable_items.pt:27 msgid "quantity:" -msgstr "" +msgstr "quantity:" #: o/skins/get_slide_buyable_items.pt:34 msgid "Cancel" -msgstr "" +msgstr "Cancel" #: o/skins/lightbox_save_control.py:10 msgid "No photo selected." -msgstr "" +msgstr "No photo selected." #: o/skins/lightbox_save_control.py:21 msgid "You must enter a title." -msgstr "" +msgstr "You must enter a title." #: o/skins/lightbox_save_control.py:27 msgid "Lightbox created." -msgstr "" +msgstr "Lightbox created." #: o/skins/lightbox_view.py:51 msgid "Photo removed." -msgstr "" +msgstr "Photo removed." #: o/skins/lightbox_view.py:53 msgid "Removed photos." -msgstr "" +msgstr "Removed photos." #: o/skins/lightbox_view.py:55 msgid "Nothing to remove." -msgstr "" +msgstr "Nothing to remove." #. Default: "" #: o/skins/lightbox_view_template.pt:19 msgid "lightbox_selected_explanations" -msgstr "" +msgstr "This light box is selected: images that you select now will automatically be saved in that location." #: o/skins/lightbox_view_template.pt:24 o/skins/my_cart_template.pt:59 #: o/skins/portfolio_view.pt:88 o/skins/selection_view_template.pt:31 msgid "delete" -msgstr "" +msgstr "delete" #: o/skins/lightbox_view_template.pt:31 o/skins/selection_view_template.pt:20 msgid "${DYNAMIC_CONTENT}" -msgstr "" +msgstr "${DYNAMIC_CONTENT}" #: o/skins/metadata_edit_form_macros.pt:258 msgid "Save" -msgstr "" +msgstr "Save" #: o/skins/my_cart.py:58 msgid "Order >>" -msgstr "" +msgstr "Order >>" #: o/skins/my_cart.py:60 msgid "Shipping >>" -msgstr "" +msgstr "Shipping >>" #: o/skins/my_cart.py:89 msgid "No more available copy of this photo and in this size." -msgstr "" +msgstr "No more available copy of this photo and in this size." #: o/skins/my_cart.py:144 o/skins/my_cart_template.pt:118 msgid "My cart" -msgstr "" +msgstr "My cart" #: o/skins/my_cart_template.pt:26 msgid "Image" -msgstr "" +msgstr "Image" #: o/skins/my_cart_template.pt:27 msgid "Printing format and type" -msgstr "" +msgstr "Printing format and type" #: o/skins/my_cart_template.pt:28 msgid "Quantity" -msgstr "" +msgstr "Quantity" #: o/skins/my_cart_template.pt:29 msgid "Amount (incl tax)" -msgstr "" +msgstr "Amount (incl tax)" #: o/skins/my_cart_template.pt:53 msgid "refresh amount" -msgstr "" +msgstr "refresh amount" #: o/skins/my_cart_template.pt:69 msgid "Prints" -msgstr "" +msgstr "Prints" #: o/skins/my_cart_template.pt:70 msgid "Total" -msgstr "" +msgstr "Total" #: o/skins/my_cart_template.pt:80 msgid "Discount" -msgstr "" +msgstr "Discount" #: o/skins/my_cart_template.pt:85 o/skins/sell_macros.pt:16 msgid "Shipping" -msgstr "" +msgstr "Shipping" #: o/skins/my_cart_template.pt:90 msgid "VAT" -msgstr "" +msgstr "VAT" #: o/skins/my_cart_template.pt:95 msgid "Total amount to pay" -msgstr "" +msgstr "Total amount to pay" #: o/skins/my_cart_template.pt:119 msgid "Your cart is currently empty." -msgstr "" +msgstr "Your cart is currently empty." #: o/skins/photo_info.pt:9 msgid "Preview:" -msgstr "" +msgstr "Preview:" #: o/skins/photo_info.pt:18 o/skins/save_as_lightbox_template.pt:15 msgid "Title" -msgstr "" +msgstr "Title" #: o/skins/photo_info.pt:22 msgid "Type" -msgstr "" +msgstr "Type" #: o/skins/photo_info.pt:26 msgid "Created" -msgstr "" +msgstr "Created" #: o/skins/photo_info.pt:30 msgid "Modified" -msgstr "" +msgstr "Modified" #: o/skins/photo_info.pt:34 msgid "Dimensions" -msgstr "" +msgstr "Dimensions" #: o/skins/photo_layout_macros.pt:32 o/skins/photo_layout_macros.pt:35 msgid "Add to selection" -msgstr "" +msgstr "Add to selection" #: o/skins/photo_layout_macros.pt:41 o/skins/photo_layout_macros.pt:44 msgid "Remove to selection" -msgstr "" +msgstr "Remove to selection" #: o/skins/photo_layout_macros.pt:60 o/skins/photo_layout_macros.pt:63 #: o/skins/portfolio_presentation_template.pt:47 msgid "Delete" -msgstr "" +msgstr "Delete" #: o/skins/photo_layout_macros.pt:78 o/skins/photo_layout_macros.pt:81 msgid "Hide for anonymous" -msgstr "" +msgstr "Hide for anonymous" #: o/skins/photo_layout_macros.pt:91 o/skins/photo_layout_macros.pt:94 msgid "Show for anonymous" -msgstr "" +msgstr "Show for anonymous" #: o/skins/photo_medium.pt:37 o/skins/photo_medium.pt:38 msgid "previous" -msgstr "" +msgstr "previous" #: o/skins/photo_medium.pt:44 o/skins/photo_medium.pt:45 msgid "next" -msgstr "" +msgstr "next" #: o/skins/photo_medium.pt:52 msgid "zoom in" -msgstr "" +msgstr "zoom in" #: o/skins/photo_medium.pt:52 msgid "zoom out" -msgstr "" +msgstr "zoom out" #: o/skins/photo_view.pt:31 msgid "Empty image: upload an image file in \"Edit\" tab." -msgstr "" +msgstr "Empty image: upload an image file in \"Edit\" tab." #: o/skins/photo_view.pt:46 o/skins/photo_view.pt:49 msgid "Previous" -msgstr "" +msgstr "Previous" #: o/skins/photo_view.pt:52 o/skins/photo_view.pt:55 msgid "Next" -msgstr "" +msgstr "Next" #: o/skins/photo_view.pt:58 msgid "slide show" -msgstr "" +msgstr "slide show" #: o/skins/photo_view.pt:69 o/skins/photo_view.pt:72 msgid "Back to portfolio..." -msgstr "" +msgstr "Back to portfolio..." #: o/skins/photo_view.pt:75 o/skins/photo_view.pt:77 msgid "Full screen (f)" -msgstr "" +msgstr "Full screen (f)" #: o/skins/photo_view.pt:99 o/skins/photo_view.pt:104 msgid "Edit metadata" -msgstr "" +msgstr "Edit metadata" #: o/skins/photo_view.pt:118 msgid "Keywords" -msgstr "" +msgstr "Keywords" #: o/skins/photo_view.pt:125 msgid "reference:" -msgstr "" +msgstr "reference:" #: o/skins/photo_view.pt:131 msgid "download picture" -msgstr "" +msgstr "download picture" #: o/skins/portfolio_edit_form.py:17 msgid "Photo deleted." -msgstr "" +msgstr "Photo deleted." #: o/skins/portfolio_edit_form.py:19 msgid "Deleted photos." -msgstr "" +msgstr "Deleted photos." #: o/skins/portfolio_edit_form.py:22 msgid "Nothing to delete." -msgstr "" +msgstr "Nothing to delete." #: o/skins/portfolio_presentation_template.pt:22 msgid "Delete presentation" -msgstr "" +msgstr "Delete presentation" #: o/skins/portfolio_view.pt:74 msgid "sorting:" -msgstr "" +msgstr "sorting:" #: o/skins/portfolio_view.pt:77 msgid "manual" -msgstr "" +msgstr "manual" #: o/skins/portfolio_view.pt:79 msgid "shooting" -msgstr "" +msgstr "shooting" #: o/skins/portfolio_view.pt:81 msgid "modification" -msgstr "" +msgstr "modification" #: o/skins/save_as_lightbox_template.pt:12 msgid "Save current selection as lightbox" -msgstr "" +msgstr "Save current selection as lightbox" #: o/skins/save_as_lightbox_template.pt:21 msgid "Description" -msgstr "" +msgstr "Description" #: o/skins/selection_view.py:56 msgid "Photo deselected." -msgstr "" +msgstr "Photo deselected." #: o/skins/selection_view.py:58 msgid "Deselected photos." -msgstr "" +msgstr "Deselected photos." #: o/skins/selection_view.py:60 msgid "Nothing to deselect." -msgstr "" +msgstr "Nothing to deselect." #: o/skins/selection_view.py:70 o/skins/selection_view.py:72 #: o/skins/selection_view_template.pt:18 o/skins/selectioncontext.py:116 #: o/skins/selectioncontext.py:118 msgid "My selection" -msgstr "" +msgstr "My selection" #: o/skins/selection_view_template.pt:23 msgid "You are editing this ligthbox:" -msgstr "" +msgstr "You are editing this ligthbox:" #: o/skins/selection_view_template.pt:42 msgid "Save as..." -msgstr "" +msgstr "Save as..." #: o/skins/selection_view_template.pt:45 msgid "${please_login} if you want to save this selection." -msgstr "" +msgstr "${please_login} if you want to save this selection." #. Default: "Please log in" #: o/skins/selection_view_template.pt:46 msgid "login_to_save_seletion" -msgstr "" +msgstr "login_to_save_seletion" #: o/skins/selection_view_template.pt:50 msgid "Empty selection." -msgstr "" +msgstr "Empty selection." #: o/skins/sell_macros.pt:14 msgid "Cart" -msgstr "" +msgstr "Cart" #: o/skins/sell_macros.pt:15 msgid "Authentication" -msgstr "" +msgstr "Authentication" #: o/skins/sell_macros.pt:17 msgid "Payment" -msgstr "" +msgstr "Payment" #: o/skins/sell_macros.pt:18 msgid "Confirmation" -msgstr "" +msgstr "Confirmation" #: o/skins/shipping_set_control.py:8 msgid "Please enter a name." -msgstr "" +msgstr "Please enter a name." #: o/skins/shipping_set_control.py:9 msgid "Please enter an address." -msgstr "" +msgstr "Please enter an address." #: o/skins/shipping_set_control.py:10 msgid "Please enter a city." -msgstr "" +msgstr "Please enter a city." #: o/skins/shipping_set_control.py:11 msgid "Please enter zip code." -msgstr "" +msgstr "Please enter zip code." #: o/skins/shipping_set_control.py:12 msgid "Please enter a country." -msgstr "" +msgstr "Please enter a country." #: o/skins/shipping_set_control.py:27 msgid "No cart found. Your session may have expired." -msgstr "" +msgstr "No cart found. Your session may have expired." #: o/skins/shipping_set_control.py:30 msgid "Shipping informations saved." -msgstr "" +msgstr "Shipping informations saved." #: o/skins/shipping_template.pt:14 msgid "Please set shipping informations" -msgstr "" +msgstr "Please set shipping informations" #: o/skins/shipping_template.pt:19 o/skins/shipping_template.pt:60 msgid "Validate >>" -msgstr "" +msgstr "Validate >>" #: o/skins/shipping_template.pt:23 msgid "Fullname" -msgstr "" +msgstr "Fullname" #: o/skins/shipping_template.pt:29 msgid "Address" -msgstr "" +msgstr "Address" #: o/skins/shipping_template.pt:36 msgid "City" -msgstr "" +msgstr "City" #: o/skins/shipping_template.pt:42 msgid "Zip code" -msgstr "" +msgstr "Zip code" #: o/skins/shipping_template.pt:48 msgid "Country" -msgstr "" +msgstr "Country" #: o/skins/zoom_view.pt:32 msgid "back" -msgstr "" +msgstr "back" # from portfolio-manual msgid "not saved yet" -msgstr "" +msgstr "not saved yet" msgid "Load in my selection" -msgstr "" +msgstr "Load in my selection" msgid "Unload from my selection" -msgstr "" +msgstr "Unload from my selection" msgid "My albums" -msgstr "" +msgstr "My albums" msgid "You don't have any album yet." -msgstr "" +msgstr "You don't have any album yet." +# date et heure de prise de vue msgid "%m/%d/%Y %H:%M:%S" -msgstr "" +msgstr "%m/%d/%Y %H:%M:%S" -- 2.20.1 From 20d32cad15428a0a8d893a8e248d925b004df2c8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Thu, 9 Oct 2014 18:18:41 +0200 Subject: [PATCH 07/16] =?utf8?q?Effacement=20de=20la=20s=C3=A9lection=20qu?= =?utf8?q?and=20le=20d=C3=A9placement=20est=20effectif=20(valid=C3=A9=20pa?= =?utf8?q?r=20le=20serveur).?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/photo_lightbox_viewer.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js index 3c69aec..97c7f79 100644 --- a/skins/photo_lightbox_viewer.js +++ b/skins/photo_lightbox_viewer.js @@ -542,15 +542,18 @@ Lightbox.prototype.moveSelectedPhotos = function() { }; Lightbox.prototype._moveSelectedPhotos = function(req) { - var i, slide; + var i, slide, cb; if (req.status === 200) { var doc = req.responseXML.documentElement; if (doc.nodeName === 'ok') { - this.pendingMovedSlides = undefined; for(i=0 ; i<this.draggedSelection.length ; i++) { slide = this.draggedSelection[i]; this.grid.removeChild(slide); + cb = this.pendingMovedSlides[i].getElementsByTagName('input')[0] + cb.checked = false; + cb.removeAttribute('checked'); } + this.pendingMovedSlides = undefined; this.cbIndex = undefined; return; } -- 2.20.1 From 56cf98937c95ed6aee58b464aa389ee3a90c9413 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Fri, 10 Oct 2014 10:54:04 +0200 Subject: [PATCH 08/16] bugfix. --- skins/photo_lightbox_viewer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js index 97c7f79..3438151 100644 --- a/skins/photo_lightbox_viewer.js +++ b/skins/photo_lightbox_viewer.js @@ -482,10 +482,10 @@ Lightbox.prototype.onDragStart = function(evt) { Lightbox.prototype.onDragOver = function(evt) { var target = getTargetedObject(evt); - if (!target) {return;} - while(target.className !== 'slide') { + while(target && target.className !== 'slide') { target = target.parentNode; } + if (!target) {return;} target = target.parentNode; if (target !== this.dragged) { target.classList.add('dragover'); -- 2.20.1 From 578b0986d2b8fbcc52fb6a38961a568469046e85 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Fri, 10 Oct 2014 11:27:59 +0200 Subject: [PATCH 09/16] =?utf8?q?D=C3=A9sactivation=20du=20dragover=20si=20?= =?utf8?q?rien=20n'est=20s=C3=A9lectionn=C3=A9=C2=A0:=C2=A0se=20produit=20?= =?utf8?q?lors=20d'un=20upload=20par=20drag=20and=20drop.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/photo_lightbox_viewer.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js index 3438151..024e01e 100644 --- a/skins/photo_lightbox_viewer.js +++ b/skins/photo_lightbox_viewer.js @@ -481,6 +481,9 @@ Lightbox.prototype.onDragStart = function(evt) { }; Lightbox.prototype.onDragOver = function(evt) { + if (!this.dragged) { + return; + } var target = getTargetedObject(evt); while(target && target.className !== 'slide') { target = target.parentNode; -- 2.20.1 From 8e1a01f483d5572199464ed072747ba998bb978f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Fri, 10 Oct 2014 11:30:40 +0200 Subject: [PATCH 10/16] jslint --- skins/photo_lightbox_viewer.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js index 024e01e..e0f304d 100644 --- a/skins/photo_lightbox_viewer.js +++ b/skins/photo_lightbox_viewer.js @@ -527,21 +527,21 @@ Lightbox.prototype.moveSelectedPhotos = function() { break; case 4 : hideProgressImage(); - self._moveSelectedPhotos(req) + self._moveSelectedPhotos(req); break; } }; var url = absolute_url() + '/portfolio_move_photos'; - req.open("POST", url, true); - req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); + req.open("POST", url, true); + req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); var query = 'container_type=' + this.container_type; var i; for (i=0 ; i<this.draggedSelection.length ; i++) { query += '&uids:list=' + this.draggedSelection[i].getAttribute('name'); } query += '&afterUid=' + this.lastDropTarget.getAttribute('name'); - req.send(query); + req.send(query); }; Lightbox.prototype._moveSelectedPhotos = function(req) { @@ -552,7 +552,7 @@ Lightbox.prototype._moveSelectedPhotos = function(req) { for(i=0 ; i<this.draggedSelection.length ; i++) { slide = this.draggedSelection[i]; this.grid.removeChild(slide); - cb = this.pendingMovedSlides[i].getElementsByTagName('input')[0] + cb = this.pendingMovedSlides[i].getElementsByTagName('input')[0]; cb.checked = false; cb.removeAttribute('checked'); } -- 2.20.1 From fbdbc13c9f32f9df94087780ce90bc0916bde420 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Fri, 10 Oct 2014 13:00:26 +0200 Subject: [PATCH 11/16] jslint --- skins/cart_listing.js | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/skins/cart_listing.js b/skins/cart_listing.js index 593002a..cf160c3 100644 --- a/skins/cart_listing.js +++ b/skins/cart_listing.js @@ -9,39 +9,39 @@ var CartListing; (function(){ var ENTERKEY = 13; -CartListing = function(table) { +CartListing = function(table) { var thisCL = this; this.table = table; var form = table.parentNode; - while(form.tagName != 'FORM') - form = form.parentNode; + while(form.tagName !== 'FORM') { + form = form.parentNode;} this.fm = new FormManager(form); - if (browser.isIE) - addListener(table, 'focusout', function(evt){thisCL.updateRow(evt);}); - else - addListener(table, 'change', function(evt){thisCL.updateRow(evt);}); + if (browser.isIE){ + addListener(table, 'focusout', function(evt){thisCL.updateRow(evt);});} + else{ + addListener(table, 'change', function(evt){thisCL.updateRow(evt);});} addListener(table, 'keypress', function(evt){thisCL.onKeypress(evt);}); -} +}; CartListing.prototype.updateRow = function(evt) { var target = getTargetedObject(evt); - if (target.tagName != 'INPUT') - return; + if (target.tagName !== 'INPUT'){ + return;} var row = target.parentNode.parentNode; - var inputs = row.getElementsByTagName('input') + var inputs = row.getElementsByTagName('input'); var refreshBtn = inputs[1]; this.fm.submitButton = refreshBtn; this.fm.submit(evt); }; CartListing.prototype.onKeypress = function(evt){ - if (evt.keyCode == ENTERKEY) - this.updateRow(evt); + if (evt.keyCode === ENTERKEY){ + this.updateRow(evt);} }; -})(); \ No newline at end of file +}()); -- 2.20.1 From 1a791f652fc028bbb22d800351ce748a7c56974f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Fri, 10 Oct 2014 13:07:05 +0200 Subject: [PATCH 12/16] jslint --- skins/cart_widgets.js | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/skins/cart_widgets.js b/skins/cart_widgets.js index 594fd22..9f59306 100644 --- a/skins/cart_widgets.js +++ b/skins/cart_widgets.js @@ -19,7 +19,7 @@ CartWidget = function(slide, url) { req.send(null); hideProgressImage(); - if (req.status != 200){ + if (req.status !== 200){ alert(req.status); return; } @@ -27,12 +27,12 @@ CartWidget = function(slide, url) { var wdgtNode = this.wdgtNode = getCopyOfNode(doc); slide.appendChild(wdgtNode); - var descriptions = this.descriptions = new Array(); + var descriptions = this.descriptions = []; var divs = wdgtNode.getElementsByTagName('div'); - var d; - for (var i=0; i<divs.length; i++) { + var d, i; + for (i=0; i<divs.length; i++) { d = divs[i]; - if (d.className =='ppt-description') { + if (d.className === 'ppt-description') { descriptions[d.getAttribute('name')] = d; } } @@ -44,31 +44,26 @@ CartWidget = function(slide, url) { fm.onBeforeSubmit = function(fm, evt){return thisCart.onBeforeSubmit(fm, evt);}; fm.onResponseLoad = function(req){return thisCart.loadResponse(req);}; - with (descriptions[itemSelector.value].style) { - visibility = 'visible'; - display='block'; - } + descriptions[itemSelector.value].style.visibility = 'visible'; + descriptions[itemSelector.value].style.display='block'; this.selectedItem = itemSelector.value; - addListener(itemSelector, 'change', function(evt){thisCart.selectItem(evt)}) -} + addListener(itemSelector, 'change', function(evt){thisCart.selectItem(evt);}); +}; CartWidget.prototype.selectItem = function(evt) { - with(this.descriptions[this.selectedItem].style) { - visibility = 'hidden'; - display = 'none' - } + this.descriptions[this.selectedItem].style.visibility = 'hidden'; + this.descriptions[this.selectedItem].style.display = 'none'; var name = this.itemSelector.value; - with (this.descriptions[name].style) { - visibility = 'visible'; - display='block'; - } + this.descriptions[name].style.visibility = 'visible'; + this.descriptions[name].style.display='block'; + this.selectedItem = name; }; CartWidget.prototype.onBeforeSubmit = function(fm, evt) { - if (fm.submitButton.name == 'cancel') { + if (fm.submitButton.name === 'cancel') { this.onCancel(); return 'cancelSubmit'; } @@ -87,7 +82,7 @@ CartWidget.prototype.loadResponse = function(req) { confirm.innerHTML = text; slide.appendChild(confirm); - var duration = parseInt(doc.getAttribute('duration')) * 1000; + var duration = parseInt(doc.getAttribute('duration'), 10) * 1000; var thisCart = this; setTimeout(function(){ @@ -112,4 +107,4 @@ CartWidget.prototype.onCancel = function() { CartWidget.prototype.onAfterConfirm = function(){}; -})(); \ No newline at end of file +}()); \ No newline at end of file -- 2.20.1 From 8ead6f1e3deb946c8ff614793f1637fe0e26efa0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Fri, 10 Oct 2014 16:11:10 +0200 Subject: [PATCH 13/16] jslint --- skins/photo_film_viewer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/skins/photo_film_viewer.js b/skins/photo_film_viewer.js index c6f583b..fa929b2 100644 --- a/skins/photo_film_viewer.js +++ b/skins/photo_film_viewer.js @@ -211,9 +211,9 @@ FilmSlider.prototype.getBestFitSize = function(ratio) { }; FilmSlider.prototype.adjustImage = function(img) { - var dispWidth = parseInt(this.stretchable.style.width); + var dispWidth = parseInt(this.stretchable.style.width, 10); var imgWidth = img.naturalWidth; - var dispHeight = parseInt(this.stretchable.style.height); + var dispHeight = parseInt(this.stretchable.style.height, 10); var imgHeight = img.naturalHeight; var ratio; -- 2.20.1 From bf33c9ca85d7668e07e0a98d7af0be131d665b31 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Fri, 10 Oct 2014 17:16:17 +0200 Subject: [PATCH 14/16] =?utf8?q?Activation=20de=20l'ordonnancement=20par?= =?utf8?q?=20drag=20and=20drop=20que=20quand=20c'est=20possible=20(permiss?= =?utf8?q?ions,=20crit=C3=A8re=20de=20tri).?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/photo_layout_macros.pt | 10 +++++++--- skins/photo_lightbox_viewer.js | 26 ++++++++++++++++++++++---- skins/portfolio_view.pt | 2 ++ 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/skins/photo_layout_macros.pt b/skins/photo_layout_macros.pt index 7960516..f68f193 100644 --- a/skins/photo_layout_macros.pt +++ b/skins/photo_layout_macros.pt @@ -9,7 +9,9 @@ <div metal:define-macro="grid" tal:define="slide_size portal_object/slide_size; mayBeDropable exists:dropable; - dropable python:True if mayBeDropable and dropable else False" + dropable python:True if mayBeDropable and dropable else False; + mayBeOrderable exists:orderable; + orderable python:True if mayBeOrderable and orderable else False" i18n:domain="portfolio"> <div id="lightbox" tal:attributes="class python:'lightbox photo-drop-target' if dropable else 'lightbox'"> <span metal:define-macro="thumbnails" tal:repeat="info infos" tal:omit-tag=""> @@ -122,7 +124,8 @@ new Lightbox(lb, document.getElementById('lightbox_toolbar'), %(complete)s, - '%(container_type)s'); + '%(container_type)s', + %(orderable)s); var uploadUrl = '%(putUrl)s'; var options = {'slideSize' : %(slideSize)d, 'thumbnailSize' : %(thumbnailSize)d}; @@ -132,7 +135,8 @@ 'slideSize' : portal_object.slide_size, 'thumbnailSize' : portal_object.thumb_size, 'complete': 'true' if not batch.next else 'false', - 'container_type' : options.get('container_type', 'portfolio')}"> + 'container_type' : options.get('container_type', 'portfolio'), + 'orderable' : 'true' if orderable else 'false'}"> </script> </div> <div metal:define-macro="film_bar" tal:omit-tag=""> diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js index e0f304d..ba3ecf1 100644 --- a/skins/photo_lightbox_viewer.js +++ b/skins/photo_lightbox_viewer.js @@ -11,7 +11,7 @@ var Lightbox; var reSelected = /.*selected.*/; -Lightbox = function(grid, toolbar, complete, container_type) { +Lightbox = function(grid, toolbar, complete, container_type, orderable) { var self = this; this.grid = grid; this._buildSlidesIndex(); // set this.slides and this.lastSlide; @@ -48,9 +48,11 @@ Lightbox = function(grid, toolbar, complete, container_type) { // drag and drop this.disableDefaultDragging(); - addListener(this.grid, 'dragstart', function(evt){self.onDragStart(evt);}); - addListener(this.grid, 'dragover', function(evt){self.onDragOver(evt);}); - addListener(this.grid, 'dragend', function(evt){self.onDragEnd(evt);}); + this._DDOrderingListeners = {'dragstart' : function(evt){self.onDragStart(evt);}, + 'dragover' : function(evt){self.onDragOver(evt);}, + 'dragend' : function(evt){self.onDragEnd(evt);} + }; + if(orderable) {this.enableDDOrdering();} }; Lightbox.prototype._buildSlidesIndex = function() { @@ -76,6 +78,7 @@ Lightbox.prototype.windowScrollToolbarlHandler = function(evt) { this.switchToolBarPositioning(false); } }; + Lightbox.prototype.windowScrollGridHandler = function(evt) { if (!this.complete && !this.fetchingDisabled && @@ -180,6 +183,8 @@ Lightbox.prototype.mouseClickHandler = function(evt) { Lightbox.prototype.onChangeHandler = function(evt) { var target = getTargetedObject(evt); if (target.name === 'sort_on') { + if (target.value === 'position') {this.enableDDOrdering();} + else {this.disableDDOrdering();} this.fm.submitButton = {'name' : 'set_sorting', 'value' : 'ok'}; this.fm.submit(evt); } @@ -464,6 +469,19 @@ Lightbox.prototype.getSelectedSlides = function() { return slides; }; + +Lightbox.prototype.enableDDOrdering = function() { + addListener(this.grid, 'dragstart', this._DDOrderingListeners.dragstart); + addListener(this.grid, 'dragover', this._DDOrderingListeners.dragover); + addListener(this.grid, 'dragend', this._DDOrderingListeners.dragend); +}; + +Lightbox.prototype.disableDDOrdering = function() { + removeListener(this.grid, 'dragstart', this._DDOrderingListeners.dragstart); + removeListener(this.grid, 'dragover', this._DDOrderingListeners.dragover); + removeListener(this.grid, 'dragend', this._DDOrderingListeners.dragend); +}; + Lightbox.prototype.onDragStart = function(evt) { var target = getTargetedObject(evt); this.dragged = target; diff --git a/skins/portfolio_view.pt b/skins/portfolio_view.pt index 06de5c3..a194d6f 100644 --- a/skins/portfolio_view.pt +++ b/skins/portfolio_view.pt @@ -28,7 +28,9 @@ <div metal:fill-slot="main" tal:omit-tag="" tal:define="AddPortalContent modules/Products/CMFCore/permissions/AddPortalContent; + ManageProperties modules/Products/CMFCore/permissions/ManageProperties; dropable python:mtool.checkPermission(AddPortalContent, here); + orderable python:mtool.checkPermission(ManageProperties, here) and here.getDefaultSorting()[0] == 'position'; Batch python:modules['Products.Plinn'].Batch; pho_start python:request.get('pho_start', 0); port_start python:request.get('port_start', 0); -- 2.20.1 From e73353500c67453ef9663d67eaeee7dd46c358ee Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Fri, 19 Dec 2014 16:43:34 +0100 Subject: [PATCH 15/16] eggification --- .../Portfolio/Extensions}/__init__.py | 0 .../Portfolio/Extensions}/composite.py | 0 .../Portfolio/Extensions}/difference.py | 0 .../Portfolio/Extensions}/fonts/Meta | 0 .../Portfolio/Extensions}/fonts/MetaBol | 0 .../Portfolio/Extensions}/fonts/MetaBolCap | 0 .../Portfolio/Extensions}/fonts/MetaCap | 0 .../Portfolio/Extensions}/fonts/MetaIta | 0 .../Portfolio/Extensions}/fonts/MetaItaCap | 0 .../Portfolio/Extensions}/fonts/MetaNor | 0 .../Portfolio/Extensions}/fonts/verdana.ttf | Bin .../Portfolio/Extensions}/watermark.py | 0 .../Portfolio/ImageManipulationTool.py | 0 .../Portfolio/Portfolio.py | 0 __init__.py => Products/Portfolio/__init__.py | 0 .../Portfolio/_zctl}/regenPhotos.py | 0 .../Portfolio/_zctl}/updateDateTimeOriginal.py | 0 .../Portfolio/compile-i18n.sh | 0 .../Portfolio/configure.zcml | 0 .../Portfolio/container.py | 0 .../Portfolio/content.zcml | 0 .../Portfolio/deprecated}/Portfolio.py | 0 .../Portfolio/deprecated}/__init__.py | 0 event.zcml => Products/Portfolio/event.zcml | 0 .../Portfolio/event_handlers.py | 0 .../Portfolio/graphics}/add_to_cart.psd | Bin .../graphics}/cart-slide-background.ai | 0 .../Portfolio/graphics}/film-arrows.psd | Bin .../Portfolio/graphics}/image_toolbar.psd | Bin .../Portfolio/graphics}/lightbox_icon.psd | Bin .../Portfolio/graphics}/refresh.psd | Bin .../Portfolio/graphics}/sellbar-arrow.psd | Bin .../Portfolio/graphics}/slides-background.psd | Bin .../Portfolio/graphics}/trash.psd | Bin .../Portfolio/interfaces.py | 0 .../Portfolio/license-fr.txt | 0 license.txt => Products/Portfolio/license.txt | 0 lightbox.py => Products/Portfolio/lightbox.py | 0 .../locales}/en/LC_MESSAGES/portfolio.mo | Bin .../locales}/en/LC_MESSAGES/portfolio.po | 0 .../locales}/fr/LC_MESSAGES/portfolio.mo | Bin .../locales}/fr/LC_MESSAGES/portfolio.po | 0 .../Portfolio/locales}/portfolio-manual.pot | 0 .../Portfolio/locales}/portfolio.pot | 0 .../Portfolio/manipulation.py | 0 .../Portfolio/migration}/__init__.py | 0 .../Portfolio/migration}/toV3.py | 0 .../Portfolio/permissions.py | 0 .../Portfolio/permissions.zcml | 0 photo.py => Products/Portfolio/photo.py | 0 .../Portfolio/skins}/add_to_cart.png | Bin .../Portfolio/skins}/add_to_cart.py | 0 .../Portfolio/skins}/add_to_selection.py | 0 .../Portfolio/skins}/cart-slide-background.png | Bin .../Portfolio/skins}/cart_btn.gif | Bin .../Portfolio/skins}/cart_listing.js | 0 .../Portfolio/skins}/cart_widgets.js | 0 {skins => Products/Portfolio/skins}/close.gif | Bin .../Portfolio/skins}/corse_071.jpg | Bin .../Portfolio/skins}/createPortfolio.py | 0 .../Portfolio/skins}/edit_metadata_btn.gif | Bin .../Portfolio/skins}/empty_portfolio.gif | Bin .../Portfolio/skins}/fleche_d.ai | 0 .../Portfolio/skins}/fleche_d.gif | Bin .../Portfolio/skins}/fleche_g.ai | Bin .../Portfolio/skins}/fleche_g.gif | Bin .../Portfolio/skins}/full_screen_btn.gif | Bin .../Portfolio/skins}/getLightboxPhotosInfos.py | 0 .../Portfolio/skins}/getPhotoBrainsInfos.py | 0 .../Portfolio/skins}/getPhotoContextInfos.py | 0 .../Portfolio/skins}/getPhotoInfo.py | 0 .../Portfolio/skins}/getPhotosInfos.py | 0 .../skins}/getSelectionPhotosInfos.py | 0 .../skins}/get_slide_buyable_items.pt | 0 .../Portfolio/skins}/hidden-slide-bg.png | Bin .../skins}/image-upload-dd-target.png | Bin .../Portfolio/skins}/image_toolbar_bg.gif | Bin .../Portfolio/skins}/imagelist.xml.py | 0 .../Portfolio/skins}/imagelist_template.pt | 0 .../Portfolio/skins}/imgtoolbar_sep.gif | Bin .../Portfolio/skins}/keyword_sep.gif | Bin .../Portfolio/skins}/left_film_arrow.gif | Bin .../Portfolio/skins}/lightbox_btn.gif | Bin .../Portfolio/skins}/lightbox_icon.png | Bin .../Portfolio/skins}/lightbox_save_control.py | 0 .../Portfolio/skins}/lightbox_view.py | 0 .../Portfolio/skins}/lightbox_view_template.pt | 0 .../Portfolio/skins}/lightboxcontext.py | 0 .../Portfolio/skins}/lrservice.py | 0 .../skins}/metadata_edit_form_macros.pt | 0 .../Portfolio/skins}/mosaique.js | 0 .../Portfolio/skins}/mosaique.js.metadata | 0 {skins => Products/Portfolio/skins}/my_cart.py | 0 .../Portfolio/skins}/my_cart_template.pt | 0 .../Portfolio/skins}/navigateur.js | 0 .../Portfolio/skins}/navigateur.js.metadata | 0 .../Portfolio/skins}/next_img_btn.gif | Bin .../Portfolio/skins}/no_image.jpg | Bin {skins => Products/Portfolio/skins}/pause.gif | Bin .../Portfolio/skins}/photo_download.py | 0 .../Portfolio/skins}/photo_edit_control.py | 0 .../Portfolio/skins}/photo_edit_form.py | 0 .../Portfolio/skins}/photo_edit_template.pt | 0 .../Portfolio/skins}/photo_film_viewer.js | 0 .../skins}/photo_film_viewer.js.metadata | 0 .../Portfolio/skins}/photo_gridthumbnail.pt | 0 .../Portfolio/skins}/photo_icon.gif | Bin .../Portfolio/skins}/photo_info.pt | 0 .../Portfolio/skins}/photo_layout_macros.pt | 0 .../Portfolio/skins}/photo_lightbox_viewer.js | 0 .../Portfolio/skins}/photo_medium.pt | 0 .../skins}/photo_metadata_edit_control.py | 0 .../Portfolio/skins}/photo_view.pt | 0 .../Portfolio/skins}/photo_view_ajax.py | 0 .../skins}/photo_view_ajax_template.pt | 0 {skins => Products/Portfolio/skins}/play.ai | 0 {skins => Products/Portfolio/skins}/play.gif | Bin .../Portfolio/skins}/portfolio_edit_form.py | 0 .../Portfolio/skins}/portfolio_icon.gif | Bin .../Portfolio/skins}/portfolio_move_photos.py | 0 .../skins}/portfolio_presentation_form.py | 0 .../skins}/portfolio_presentation_template.pt | 0 .../skins}/portfolio_properties.props | 0 .../Portfolio/skins}/portfolio_style.css.dtml | 0 .../skins}/portfolio_thumbnails_tail.py | 0 .../portfolio_thumbnails_tail_template.pt | 0 .../Portfolio/skins}/portfolio_upload.js | 0 .../skins}/portfolio_upload.js.metadata | 0 .../Portfolio/skins}/portfolio_view.pt | 0 .../Portfolio/skins}/prev_img_btn.gif | Bin .../Portfolio/skins}/refresh.png | Bin .../Portfolio/skins}/remove_to_lightbox.py | 0 .../Portfolio/skins}/remove_to_selection.py | 0 .../Portfolio/skins}/retractable_menu.js | 0 .../Portfolio/skins}/right_film_arrow.gif | Bin .../Portfolio/skins}/save_as_lightbox_form.py | 0 .../skins}/save_as_lightbox_template.pt | 0 .../Portfolio/skins}/select_flag_btn.gif | Bin .../Portfolio/skins}/selection_view.py | 0 .../skins}/selection_view_template.pt | 0 .../Portfolio/skins}/selectioncontext.py | 0 .../Portfolio/skins}/sell_macros.pt | 0 .../Portfolio/skins}/sellbar-arrow.gif | Bin .../Portfolio/skins}/set_photo_title.py | 0 .../Portfolio/skins}/shipping_set_control.py | 0 .../Portfolio/skins}/shipping_template.pt | 0 .../Portfolio/skins}/slide-cart-btn.png | Bin .../skins}/slide-cart-btn.png.metadata | 0 .../Portfolio/skins}/slide-del-btn.png | Bin .../Portfolio/skins}/slide-deselect-btn.png | Bin .../Portfolio/skins}/slide-eye-closed.png | Bin .../Portfolio/skins}/slide-eye-open-btn.png | Bin .../skins}/slide-eye-open-btn.png.metadata | 0 .../Portfolio/skins}/slide-select-btn.png | Bin .../skins}/slide-select-btn.png.metadata | 0 .../Portfolio/skins}/slide_show.pt | 0 .../Portfolio/skins}/slide_show.swf | Bin .../Portfolio/skins}/slide_show_btn.gif | Bin .../Portfolio/skins}/slide_style.css | 0 .../Portfolio/skins}/slide_style.css.metadata | 0 .../Portfolio/skins}/slidebg_del.gif | Bin .../Portfolio/skins}/slidebg_desel.gif | Bin .../Portfolio/skins}/slidebg_desel_del.gif | Bin .../Portfolio/skins}/slidebg_sel.gif | Bin .../Portfolio/skins}/slidebg_sel_del.gif | Bin .../Portfolio/skins}/slider_bg.gif | Bin {skins => Products/Portfolio/skins}/style.css | 0 .../Portfolio/skins}/swfobject.js | 0 .../Portfolio/skins}/thumbnail.jpg | Bin .../Portfolio/skins}/tiling_infos.xml.py | 0 .../Portfolio/skins}/tiling_infos_template.pt | 0 .../Portfolio/skins}/transparent.gif | Bin {skins => Products/Portfolio/skins}/trash.png | Bin .../Portfolio/skins}/trash_btn.gif | Bin .../Portfolio/skins}/unselect_flag_btn.gif | Bin .../Portfolio/skins}/zoom_disabled.gif | Bin .../Portfolio/skins}/zoom_in.gif | Bin .../Portfolio/skins}/zoom_out.gif | Bin .../Portfolio/skins}/zoom_view.pt | 0 tool.gif => Products/Portfolio/tool.gif | Bin .../Portfolio/update-i18n.sh | 0 utils.py => Products/Portfolio/utils.py | 0 version.txt => Products/Portfolio/version.txt | 0 .../Portfolio/www}/manageProcessor.zpt | 0 Products/__init__.py | 5 +++++ setup.py | 17 +++++++++++++++++ 186 files changed, 22 insertions(+) rename {Extensions => Products/Portfolio/Extensions}/__init__.py (100%) rename {Extensions => Products/Portfolio/Extensions}/composite.py (100%) rename {Extensions => Products/Portfolio/Extensions}/difference.py (100%) rename {Extensions => Products/Portfolio/Extensions}/fonts/Meta (100%) rename {Extensions => Products/Portfolio/Extensions}/fonts/MetaBol (100%) rename {Extensions => Products/Portfolio/Extensions}/fonts/MetaBolCap (100%) rename {Extensions => Products/Portfolio/Extensions}/fonts/MetaCap (100%) rename {Extensions => Products/Portfolio/Extensions}/fonts/MetaIta (100%) rename {Extensions => Products/Portfolio/Extensions}/fonts/MetaItaCap (100%) rename {Extensions => Products/Portfolio/Extensions}/fonts/MetaNor (100%) rename {Extensions => Products/Portfolio/Extensions}/fonts/verdana.ttf (100%) rename {Extensions => Products/Portfolio/Extensions}/watermark.py (100%) rename ImageManipulationTool.py => Products/Portfolio/ImageManipulationTool.py (100%) rename Portfolio.py => Products/Portfolio/Portfolio.py (100%) rename __init__.py => Products/Portfolio/__init__.py (100%) rename {_zctl => Products/Portfolio/_zctl}/regenPhotos.py (100%) rename {_zctl => Products/Portfolio/_zctl}/updateDateTimeOriginal.py (100%) rename compile-i18n.sh => Products/Portfolio/compile-i18n.sh (100%) rename configure.zcml => Products/Portfolio/configure.zcml (100%) rename container.py => Products/Portfolio/container.py (100%) rename content.zcml => Products/Portfolio/content.zcml (100%) rename {deprecated => Products/Portfolio/deprecated}/Portfolio.py (100%) rename {deprecated => Products/Portfolio/deprecated}/__init__.py (100%) rename event.zcml => Products/Portfolio/event.zcml (100%) rename event_handlers.py => Products/Portfolio/event_handlers.py (100%) rename {graphics => Products/Portfolio/graphics}/add_to_cart.psd (100%) rename {graphics => Products/Portfolio/graphics}/cart-slide-background.ai (100%) rename {graphics => Products/Portfolio/graphics}/film-arrows.psd (100%) rename {graphics => Products/Portfolio/graphics}/image_toolbar.psd (100%) rename {graphics => Products/Portfolio/graphics}/lightbox_icon.psd (100%) rename {graphics => Products/Portfolio/graphics}/refresh.psd (100%) rename {graphics => Products/Portfolio/graphics}/sellbar-arrow.psd (100%) rename {graphics => Products/Portfolio/graphics}/slides-background.psd (100%) rename {graphics => Products/Portfolio/graphics}/trash.psd (100%) rename interfaces.py => Products/Portfolio/interfaces.py (100%) rename license-fr.txt => Products/Portfolio/license-fr.txt (100%) rename license.txt => Products/Portfolio/license.txt (100%) rename lightbox.py => Products/Portfolio/lightbox.py (100%) rename {locales => Products/Portfolio/locales}/en/LC_MESSAGES/portfolio.mo (100%) rename {locales => Products/Portfolio/locales}/en/LC_MESSAGES/portfolio.po (100%) rename {locales => Products/Portfolio/locales}/fr/LC_MESSAGES/portfolio.mo (100%) rename {locales => Products/Portfolio/locales}/fr/LC_MESSAGES/portfolio.po (100%) rename {locales => Products/Portfolio/locales}/portfolio-manual.pot (100%) rename {locales => Products/Portfolio/locales}/portfolio.pot (100%) rename manipulation.py => Products/Portfolio/manipulation.py (100%) rename {migration => Products/Portfolio/migration}/__init__.py (100%) rename {migration => Products/Portfolio/migration}/toV3.py (100%) rename permissions.py => Products/Portfolio/permissions.py (100%) rename permissions.zcml => Products/Portfolio/permissions.zcml (100%) rename photo.py => Products/Portfolio/photo.py (100%) rename {skins => Products/Portfolio/skins}/add_to_cart.png (100%) rename {skins => Products/Portfolio/skins}/add_to_cart.py (100%) rename {skins => Products/Portfolio/skins}/add_to_selection.py (100%) rename {skins => Products/Portfolio/skins}/cart-slide-background.png (100%) rename {skins => Products/Portfolio/skins}/cart_btn.gif (100%) rename {skins => Products/Portfolio/skins}/cart_listing.js (100%) rename {skins => Products/Portfolio/skins}/cart_widgets.js (100%) rename {skins => Products/Portfolio/skins}/close.gif (100%) rename {skins => Products/Portfolio/skins}/corse_071.jpg (100%) rename {skins => Products/Portfolio/skins}/createPortfolio.py (100%) rename {skins => Products/Portfolio/skins}/edit_metadata_btn.gif (100%) rename {skins => Products/Portfolio/skins}/empty_portfolio.gif (100%) rename {skins => Products/Portfolio/skins}/fleche_d.ai (100%) rename {skins => Products/Portfolio/skins}/fleche_d.gif (100%) rename {skins => Products/Portfolio/skins}/fleche_g.ai (100%) rename {skins => Products/Portfolio/skins}/fleche_g.gif (100%) rename {skins => Products/Portfolio/skins}/full_screen_btn.gif (100%) rename {skins => Products/Portfolio/skins}/getLightboxPhotosInfos.py (100%) rename {skins => Products/Portfolio/skins}/getPhotoBrainsInfos.py (100%) rename {skins => Products/Portfolio/skins}/getPhotoContextInfos.py (100%) rename {skins => Products/Portfolio/skins}/getPhotoInfo.py (100%) rename {skins => Products/Portfolio/skins}/getPhotosInfos.py (100%) rename {skins => Products/Portfolio/skins}/getSelectionPhotosInfos.py (100%) rename {skins => Products/Portfolio/skins}/get_slide_buyable_items.pt (100%) rename {skins => Products/Portfolio/skins}/hidden-slide-bg.png (100%) rename {skins => Products/Portfolio/skins}/image-upload-dd-target.png (100%) rename {skins => Products/Portfolio/skins}/image_toolbar_bg.gif (100%) rename {skins => Products/Portfolio/skins}/imagelist.xml.py (100%) rename {skins => Products/Portfolio/skins}/imagelist_template.pt (100%) rename {skins => Products/Portfolio/skins}/imgtoolbar_sep.gif (100%) rename {skins => Products/Portfolio/skins}/keyword_sep.gif (100%) rename {skins => Products/Portfolio/skins}/left_film_arrow.gif (100%) rename {skins => Products/Portfolio/skins}/lightbox_btn.gif (100%) rename {skins => Products/Portfolio/skins}/lightbox_icon.png (100%) rename {skins => Products/Portfolio/skins}/lightbox_save_control.py (100%) rename {skins => Products/Portfolio/skins}/lightbox_view.py (100%) rename {skins => Products/Portfolio/skins}/lightbox_view_template.pt (100%) rename {skins => Products/Portfolio/skins}/lightboxcontext.py (100%) rename {skins => Products/Portfolio/skins}/lrservice.py (100%) rename {skins => Products/Portfolio/skins}/metadata_edit_form_macros.pt (100%) rename {skins => Products/Portfolio/skins}/mosaique.js (100%) rename {skins => Products/Portfolio/skins}/mosaique.js.metadata (100%) rename {skins => Products/Portfolio/skins}/my_cart.py (100%) rename {skins => Products/Portfolio/skins}/my_cart_template.pt (100%) rename {skins => Products/Portfolio/skins}/navigateur.js (100%) rename {skins => Products/Portfolio/skins}/navigateur.js.metadata (100%) rename {skins => Products/Portfolio/skins}/next_img_btn.gif (100%) rename {skins => Products/Portfolio/skins}/no_image.jpg (100%) rename {skins => Products/Portfolio/skins}/pause.gif (100%) rename {skins => Products/Portfolio/skins}/photo_download.py (100%) rename {skins => Products/Portfolio/skins}/photo_edit_control.py (100%) rename {skins => Products/Portfolio/skins}/photo_edit_form.py (100%) rename {skins => Products/Portfolio/skins}/photo_edit_template.pt (100%) rename {skins => Products/Portfolio/skins}/photo_film_viewer.js (100%) rename {skins => Products/Portfolio/skins}/photo_film_viewer.js.metadata (100%) rename {skins => Products/Portfolio/skins}/photo_gridthumbnail.pt (100%) rename {skins => Products/Portfolio/skins}/photo_icon.gif (100%) rename {skins => Products/Portfolio/skins}/photo_info.pt (100%) rename {skins => Products/Portfolio/skins}/photo_layout_macros.pt (100%) rename {skins => Products/Portfolio/skins}/photo_lightbox_viewer.js (100%) rename {skins => Products/Portfolio/skins}/photo_medium.pt (100%) rename {skins => Products/Portfolio/skins}/photo_metadata_edit_control.py (100%) rename {skins => Products/Portfolio/skins}/photo_view.pt (100%) rename {skins => Products/Portfolio/skins}/photo_view_ajax.py (100%) rename {skins => Products/Portfolio/skins}/photo_view_ajax_template.pt (100%) rename {skins => Products/Portfolio/skins}/play.ai (100%) rename {skins => Products/Portfolio/skins}/play.gif (100%) rename {skins => Products/Portfolio/skins}/portfolio_edit_form.py (100%) rename {skins => Products/Portfolio/skins}/portfolio_icon.gif (100%) rename {skins => Products/Portfolio/skins}/portfolio_move_photos.py (100%) rename {skins => Products/Portfolio/skins}/portfolio_presentation_form.py (100%) rename {skins => Products/Portfolio/skins}/portfolio_presentation_template.pt (100%) rename {skins => Products/Portfolio/skins}/portfolio_properties.props (100%) rename {skins => Products/Portfolio/skins}/portfolio_style.css.dtml (100%) rename {skins => Products/Portfolio/skins}/portfolio_thumbnails_tail.py (100%) rename {skins => Products/Portfolio/skins}/portfolio_thumbnails_tail_template.pt (100%) rename {skins => Products/Portfolio/skins}/portfolio_upload.js (100%) rename {skins => Products/Portfolio/skins}/portfolio_upload.js.metadata (100%) rename {skins => Products/Portfolio/skins}/portfolio_view.pt (100%) rename {skins => Products/Portfolio/skins}/prev_img_btn.gif (100%) rename {skins => Products/Portfolio/skins}/refresh.png (100%) rename {skins => Products/Portfolio/skins}/remove_to_lightbox.py (100%) rename {skins => Products/Portfolio/skins}/remove_to_selection.py (100%) rename {skins => Products/Portfolio/skins}/retractable_menu.js (100%) rename {skins => Products/Portfolio/skins}/right_film_arrow.gif (100%) rename {skins => Products/Portfolio/skins}/save_as_lightbox_form.py (100%) rename {skins => Products/Portfolio/skins}/save_as_lightbox_template.pt (100%) rename {skins => Products/Portfolio/skins}/select_flag_btn.gif (100%) rename {skins => Products/Portfolio/skins}/selection_view.py (100%) rename {skins => Products/Portfolio/skins}/selection_view_template.pt (100%) rename {skins => Products/Portfolio/skins}/selectioncontext.py (100%) rename {skins => Products/Portfolio/skins}/sell_macros.pt (100%) rename {skins => Products/Portfolio/skins}/sellbar-arrow.gif (100%) rename {skins => Products/Portfolio/skins}/set_photo_title.py (100%) rename {skins => Products/Portfolio/skins}/shipping_set_control.py (100%) rename {skins => Products/Portfolio/skins}/shipping_template.pt (100%) rename {skins => Products/Portfolio/skins}/slide-cart-btn.png (100%) rename {skins => Products/Portfolio/skins}/slide-cart-btn.png.metadata (100%) rename {skins => Products/Portfolio/skins}/slide-del-btn.png (100%) rename {skins => Products/Portfolio/skins}/slide-deselect-btn.png (100%) rename {skins => Products/Portfolio/skins}/slide-eye-closed.png (100%) rename {skins => Products/Portfolio/skins}/slide-eye-open-btn.png (100%) rename {skins => Products/Portfolio/skins}/slide-eye-open-btn.png.metadata (100%) rename {skins => Products/Portfolio/skins}/slide-select-btn.png (100%) rename {skins => Products/Portfolio/skins}/slide-select-btn.png.metadata (100%) rename {skins => Products/Portfolio/skins}/slide_show.pt (100%) rename {skins => Products/Portfolio/skins}/slide_show.swf (100%) rename {skins => Products/Portfolio/skins}/slide_show_btn.gif (100%) rename {skins => Products/Portfolio/skins}/slide_style.css (100%) rename {skins => Products/Portfolio/skins}/slide_style.css.metadata (100%) rename {skins => Products/Portfolio/skins}/slidebg_del.gif (100%) rename {skins => Products/Portfolio/skins}/slidebg_desel.gif (100%) rename {skins => Products/Portfolio/skins}/slidebg_desel_del.gif (100%) rename {skins => Products/Portfolio/skins}/slidebg_sel.gif (100%) rename {skins => Products/Portfolio/skins}/slidebg_sel_del.gif (100%) rename {skins => Products/Portfolio/skins}/slider_bg.gif (100%) rename {skins => Products/Portfolio/skins}/style.css (100%) rename {skins => Products/Portfolio/skins}/swfobject.js (100%) rename {skins => Products/Portfolio/skins}/thumbnail.jpg (100%) rename {skins => Products/Portfolio/skins}/tiling_infos.xml.py (100%) rename {skins => Products/Portfolio/skins}/tiling_infos_template.pt (100%) rename {skins => Products/Portfolio/skins}/transparent.gif (100%) rename {skins => Products/Portfolio/skins}/trash.png (100%) rename {skins => Products/Portfolio/skins}/trash_btn.gif (100%) rename {skins => Products/Portfolio/skins}/unselect_flag_btn.gif (100%) rename {skins => Products/Portfolio/skins}/zoom_disabled.gif (100%) rename {skins => Products/Portfolio/skins}/zoom_in.gif (100%) rename {skins => Products/Portfolio/skins}/zoom_out.gif (100%) rename {skins => Products/Portfolio/skins}/zoom_view.pt (100%) rename tool.gif => Products/Portfolio/tool.gif (100%) rename update-i18n.sh => Products/Portfolio/update-i18n.sh (100%) rename utils.py => Products/Portfolio/utils.py (100%) rename version.txt => Products/Portfolio/version.txt (100%) rename {www => Products/Portfolio/www}/manageProcessor.zpt (100%) create mode 100644 Products/__init__.py create mode 100644 setup.py diff --git a/Extensions/__init__.py b/Products/Portfolio/Extensions/__init__.py similarity index 100% rename from Extensions/__init__.py rename to Products/Portfolio/Extensions/__init__.py diff --git a/Extensions/composite.py b/Products/Portfolio/Extensions/composite.py similarity index 100% rename from Extensions/composite.py rename to Products/Portfolio/Extensions/composite.py diff --git a/Extensions/difference.py b/Products/Portfolio/Extensions/difference.py similarity index 100% rename from Extensions/difference.py rename to Products/Portfolio/Extensions/difference.py diff --git a/Extensions/fonts/Meta b/Products/Portfolio/Extensions/fonts/Meta similarity index 100% rename from Extensions/fonts/Meta rename to Products/Portfolio/Extensions/fonts/Meta diff --git a/Extensions/fonts/MetaBol b/Products/Portfolio/Extensions/fonts/MetaBol similarity index 100% rename from Extensions/fonts/MetaBol rename to Products/Portfolio/Extensions/fonts/MetaBol diff --git a/Extensions/fonts/MetaBolCap b/Products/Portfolio/Extensions/fonts/MetaBolCap similarity index 100% rename from Extensions/fonts/MetaBolCap rename to Products/Portfolio/Extensions/fonts/MetaBolCap diff --git a/Extensions/fonts/MetaCap b/Products/Portfolio/Extensions/fonts/MetaCap similarity index 100% rename from Extensions/fonts/MetaCap rename to Products/Portfolio/Extensions/fonts/MetaCap diff --git a/Extensions/fonts/MetaIta b/Products/Portfolio/Extensions/fonts/MetaIta similarity index 100% rename from Extensions/fonts/MetaIta rename to Products/Portfolio/Extensions/fonts/MetaIta diff --git a/Extensions/fonts/MetaItaCap b/Products/Portfolio/Extensions/fonts/MetaItaCap similarity index 100% rename from Extensions/fonts/MetaItaCap rename to Products/Portfolio/Extensions/fonts/MetaItaCap diff --git a/Extensions/fonts/MetaNor b/Products/Portfolio/Extensions/fonts/MetaNor similarity index 100% rename from Extensions/fonts/MetaNor rename to Products/Portfolio/Extensions/fonts/MetaNor diff --git a/Extensions/fonts/verdana.ttf b/Products/Portfolio/Extensions/fonts/verdana.ttf similarity index 100% rename from Extensions/fonts/verdana.ttf rename to Products/Portfolio/Extensions/fonts/verdana.ttf diff --git a/Extensions/watermark.py b/Products/Portfolio/Extensions/watermark.py similarity index 100% rename from Extensions/watermark.py rename to Products/Portfolio/Extensions/watermark.py diff --git a/ImageManipulationTool.py b/Products/Portfolio/ImageManipulationTool.py similarity index 100% rename from ImageManipulationTool.py rename to Products/Portfolio/ImageManipulationTool.py diff --git a/Portfolio.py b/Products/Portfolio/Portfolio.py similarity index 100% rename from Portfolio.py rename to Products/Portfolio/Portfolio.py diff --git a/__init__.py b/Products/Portfolio/__init__.py similarity index 100% rename from __init__.py rename to Products/Portfolio/__init__.py diff --git a/_zctl/regenPhotos.py b/Products/Portfolio/_zctl/regenPhotos.py similarity index 100% rename from _zctl/regenPhotos.py rename to Products/Portfolio/_zctl/regenPhotos.py diff --git a/_zctl/updateDateTimeOriginal.py b/Products/Portfolio/_zctl/updateDateTimeOriginal.py similarity index 100% rename from _zctl/updateDateTimeOriginal.py rename to Products/Portfolio/_zctl/updateDateTimeOriginal.py diff --git a/compile-i18n.sh b/Products/Portfolio/compile-i18n.sh similarity index 100% rename from compile-i18n.sh rename to Products/Portfolio/compile-i18n.sh diff --git a/configure.zcml b/Products/Portfolio/configure.zcml similarity index 100% rename from configure.zcml rename to Products/Portfolio/configure.zcml diff --git a/container.py b/Products/Portfolio/container.py similarity index 100% rename from container.py rename to Products/Portfolio/container.py diff --git a/content.zcml b/Products/Portfolio/content.zcml similarity index 100% rename from content.zcml rename to Products/Portfolio/content.zcml diff --git a/deprecated/Portfolio.py b/Products/Portfolio/deprecated/Portfolio.py similarity index 100% rename from deprecated/Portfolio.py rename to Products/Portfolio/deprecated/Portfolio.py diff --git a/deprecated/__init__.py b/Products/Portfolio/deprecated/__init__.py similarity index 100% rename from deprecated/__init__.py rename to Products/Portfolio/deprecated/__init__.py diff --git a/event.zcml b/Products/Portfolio/event.zcml similarity index 100% rename from event.zcml rename to Products/Portfolio/event.zcml diff --git a/event_handlers.py b/Products/Portfolio/event_handlers.py similarity index 100% rename from event_handlers.py rename to Products/Portfolio/event_handlers.py diff --git a/graphics/add_to_cart.psd b/Products/Portfolio/graphics/add_to_cart.psd similarity index 100% rename from graphics/add_to_cart.psd rename to Products/Portfolio/graphics/add_to_cart.psd diff --git a/graphics/cart-slide-background.ai b/Products/Portfolio/graphics/cart-slide-background.ai similarity index 100% rename from graphics/cart-slide-background.ai rename to Products/Portfolio/graphics/cart-slide-background.ai diff --git a/graphics/film-arrows.psd b/Products/Portfolio/graphics/film-arrows.psd similarity index 100% rename from graphics/film-arrows.psd rename to Products/Portfolio/graphics/film-arrows.psd diff --git a/graphics/image_toolbar.psd b/Products/Portfolio/graphics/image_toolbar.psd similarity index 100% rename from graphics/image_toolbar.psd rename to Products/Portfolio/graphics/image_toolbar.psd diff --git a/graphics/lightbox_icon.psd b/Products/Portfolio/graphics/lightbox_icon.psd similarity index 100% rename from graphics/lightbox_icon.psd rename to Products/Portfolio/graphics/lightbox_icon.psd diff --git a/graphics/refresh.psd b/Products/Portfolio/graphics/refresh.psd similarity index 100% rename from graphics/refresh.psd rename to Products/Portfolio/graphics/refresh.psd diff --git a/graphics/sellbar-arrow.psd b/Products/Portfolio/graphics/sellbar-arrow.psd similarity index 100% rename from graphics/sellbar-arrow.psd rename to Products/Portfolio/graphics/sellbar-arrow.psd diff --git a/graphics/slides-background.psd b/Products/Portfolio/graphics/slides-background.psd similarity index 100% rename from graphics/slides-background.psd rename to Products/Portfolio/graphics/slides-background.psd diff --git a/graphics/trash.psd b/Products/Portfolio/graphics/trash.psd similarity index 100% rename from graphics/trash.psd rename to Products/Portfolio/graphics/trash.psd diff --git a/interfaces.py b/Products/Portfolio/interfaces.py similarity index 100% rename from interfaces.py rename to Products/Portfolio/interfaces.py diff --git a/license-fr.txt b/Products/Portfolio/license-fr.txt similarity index 100% rename from license-fr.txt rename to Products/Portfolio/license-fr.txt diff --git a/license.txt b/Products/Portfolio/license.txt similarity index 100% rename from license.txt rename to Products/Portfolio/license.txt diff --git a/lightbox.py b/Products/Portfolio/lightbox.py similarity index 100% rename from lightbox.py rename to Products/Portfolio/lightbox.py diff --git a/locales/en/LC_MESSAGES/portfolio.mo b/Products/Portfolio/locales/en/LC_MESSAGES/portfolio.mo similarity index 100% rename from locales/en/LC_MESSAGES/portfolio.mo rename to Products/Portfolio/locales/en/LC_MESSAGES/portfolio.mo diff --git a/locales/en/LC_MESSAGES/portfolio.po b/Products/Portfolio/locales/en/LC_MESSAGES/portfolio.po similarity index 100% rename from locales/en/LC_MESSAGES/portfolio.po rename to Products/Portfolio/locales/en/LC_MESSAGES/portfolio.po diff --git a/locales/fr/LC_MESSAGES/portfolio.mo b/Products/Portfolio/locales/fr/LC_MESSAGES/portfolio.mo similarity index 100% rename from locales/fr/LC_MESSAGES/portfolio.mo rename to Products/Portfolio/locales/fr/LC_MESSAGES/portfolio.mo diff --git a/locales/fr/LC_MESSAGES/portfolio.po b/Products/Portfolio/locales/fr/LC_MESSAGES/portfolio.po similarity index 100% rename from locales/fr/LC_MESSAGES/portfolio.po rename to Products/Portfolio/locales/fr/LC_MESSAGES/portfolio.po diff --git a/locales/portfolio-manual.pot b/Products/Portfolio/locales/portfolio-manual.pot similarity index 100% rename from locales/portfolio-manual.pot rename to Products/Portfolio/locales/portfolio-manual.pot diff --git a/locales/portfolio.pot b/Products/Portfolio/locales/portfolio.pot similarity index 100% rename from locales/portfolio.pot rename to Products/Portfolio/locales/portfolio.pot diff --git a/manipulation.py b/Products/Portfolio/manipulation.py similarity index 100% rename from manipulation.py rename to Products/Portfolio/manipulation.py diff --git a/migration/__init__.py b/Products/Portfolio/migration/__init__.py similarity index 100% rename from migration/__init__.py rename to Products/Portfolio/migration/__init__.py diff --git a/migration/toV3.py b/Products/Portfolio/migration/toV3.py similarity index 100% rename from migration/toV3.py rename to Products/Portfolio/migration/toV3.py diff --git a/permissions.py b/Products/Portfolio/permissions.py similarity index 100% rename from permissions.py rename to Products/Portfolio/permissions.py diff --git a/permissions.zcml b/Products/Portfolio/permissions.zcml similarity index 100% rename from permissions.zcml rename to Products/Portfolio/permissions.zcml diff --git a/photo.py b/Products/Portfolio/photo.py similarity index 100% rename from photo.py rename to Products/Portfolio/photo.py diff --git a/skins/add_to_cart.png b/Products/Portfolio/skins/add_to_cart.png similarity index 100% rename from skins/add_to_cart.png rename to Products/Portfolio/skins/add_to_cart.png diff --git a/skins/add_to_cart.py b/Products/Portfolio/skins/add_to_cart.py similarity index 100% rename from skins/add_to_cart.py rename to Products/Portfolio/skins/add_to_cart.py diff --git a/skins/add_to_selection.py b/Products/Portfolio/skins/add_to_selection.py similarity index 100% rename from skins/add_to_selection.py rename to Products/Portfolio/skins/add_to_selection.py diff --git a/skins/cart-slide-background.png b/Products/Portfolio/skins/cart-slide-background.png similarity index 100% rename from skins/cart-slide-background.png rename to Products/Portfolio/skins/cart-slide-background.png diff --git a/skins/cart_btn.gif b/Products/Portfolio/skins/cart_btn.gif similarity index 100% rename from skins/cart_btn.gif rename to Products/Portfolio/skins/cart_btn.gif diff --git a/skins/cart_listing.js b/Products/Portfolio/skins/cart_listing.js similarity index 100% rename from skins/cart_listing.js rename to Products/Portfolio/skins/cart_listing.js diff --git a/skins/cart_widgets.js b/Products/Portfolio/skins/cart_widgets.js similarity index 100% rename from skins/cart_widgets.js rename to Products/Portfolio/skins/cart_widgets.js diff --git a/skins/close.gif b/Products/Portfolio/skins/close.gif similarity index 100% rename from skins/close.gif rename to Products/Portfolio/skins/close.gif diff --git a/skins/corse_071.jpg b/Products/Portfolio/skins/corse_071.jpg similarity index 100% rename from skins/corse_071.jpg rename to Products/Portfolio/skins/corse_071.jpg diff --git a/skins/createPortfolio.py b/Products/Portfolio/skins/createPortfolio.py similarity index 100% rename from skins/createPortfolio.py rename to Products/Portfolio/skins/createPortfolio.py diff --git a/skins/edit_metadata_btn.gif b/Products/Portfolio/skins/edit_metadata_btn.gif similarity index 100% rename from skins/edit_metadata_btn.gif rename to Products/Portfolio/skins/edit_metadata_btn.gif diff --git a/skins/empty_portfolio.gif b/Products/Portfolio/skins/empty_portfolio.gif similarity index 100% rename from skins/empty_portfolio.gif rename to Products/Portfolio/skins/empty_portfolio.gif diff --git a/skins/fleche_d.ai b/Products/Portfolio/skins/fleche_d.ai similarity index 100% rename from skins/fleche_d.ai rename to Products/Portfolio/skins/fleche_d.ai diff --git a/skins/fleche_d.gif b/Products/Portfolio/skins/fleche_d.gif similarity index 100% rename from skins/fleche_d.gif rename to Products/Portfolio/skins/fleche_d.gif diff --git a/skins/fleche_g.ai b/Products/Portfolio/skins/fleche_g.ai similarity index 100% rename from skins/fleche_g.ai rename to Products/Portfolio/skins/fleche_g.ai diff --git a/skins/fleche_g.gif b/Products/Portfolio/skins/fleche_g.gif similarity index 100% rename from skins/fleche_g.gif rename to Products/Portfolio/skins/fleche_g.gif diff --git a/skins/full_screen_btn.gif b/Products/Portfolio/skins/full_screen_btn.gif similarity index 100% rename from skins/full_screen_btn.gif rename to Products/Portfolio/skins/full_screen_btn.gif diff --git a/skins/getLightboxPhotosInfos.py b/Products/Portfolio/skins/getLightboxPhotosInfos.py similarity index 100% rename from skins/getLightboxPhotosInfos.py rename to Products/Portfolio/skins/getLightboxPhotosInfos.py diff --git a/skins/getPhotoBrainsInfos.py b/Products/Portfolio/skins/getPhotoBrainsInfos.py similarity index 100% rename from skins/getPhotoBrainsInfos.py rename to Products/Portfolio/skins/getPhotoBrainsInfos.py diff --git a/skins/getPhotoContextInfos.py b/Products/Portfolio/skins/getPhotoContextInfos.py similarity index 100% rename from skins/getPhotoContextInfos.py rename to Products/Portfolio/skins/getPhotoContextInfos.py diff --git a/skins/getPhotoInfo.py b/Products/Portfolio/skins/getPhotoInfo.py similarity index 100% rename from skins/getPhotoInfo.py rename to Products/Portfolio/skins/getPhotoInfo.py diff --git a/skins/getPhotosInfos.py b/Products/Portfolio/skins/getPhotosInfos.py similarity index 100% rename from skins/getPhotosInfos.py rename to Products/Portfolio/skins/getPhotosInfos.py diff --git a/skins/getSelectionPhotosInfos.py b/Products/Portfolio/skins/getSelectionPhotosInfos.py similarity index 100% rename from skins/getSelectionPhotosInfos.py rename to Products/Portfolio/skins/getSelectionPhotosInfos.py diff --git a/skins/get_slide_buyable_items.pt b/Products/Portfolio/skins/get_slide_buyable_items.pt similarity index 100% rename from skins/get_slide_buyable_items.pt rename to Products/Portfolio/skins/get_slide_buyable_items.pt diff --git a/skins/hidden-slide-bg.png b/Products/Portfolio/skins/hidden-slide-bg.png similarity index 100% rename from skins/hidden-slide-bg.png rename to Products/Portfolio/skins/hidden-slide-bg.png diff --git a/skins/image-upload-dd-target.png b/Products/Portfolio/skins/image-upload-dd-target.png similarity index 100% rename from skins/image-upload-dd-target.png rename to Products/Portfolio/skins/image-upload-dd-target.png diff --git a/skins/image_toolbar_bg.gif b/Products/Portfolio/skins/image_toolbar_bg.gif similarity index 100% rename from skins/image_toolbar_bg.gif rename to Products/Portfolio/skins/image_toolbar_bg.gif diff --git a/skins/imagelist.xml.py b/Products/Portfolio/skins/imagelist.xml.py similarity index 100% rename from skins/imagelist.xml.py rename to Products/Portfolio/skins/imagelist.xml.py diff --git a/skins/imagelist_template.pt b/Products/Portfolio/skins/imagelist_template.pt similarity index 100% rename from skins/imagelist_template.pt rename to Products/Portfolio/skins/imagelist_template.pt diff --git a/skins/imgtoolbar_sep.gif b/Products/Portfolio/skins/imgtoolbar_sep.gif similarity index 100% rename from skins/imgtoolbar_sep.gif rename to Products/Portfolio/skins/imgtoolbar_sep.gif diff --git a/skins/keyword_sep.gif b/Products/Portfolio/skins/keyword_sep.gif similarity index 100% rename from skins/keyword_sep.gif rename to Products/Portfolio/skins/keyword_sep.gif diff --git a/skins/left_film_arrow.gif b/Products/Portfolio/skins/left_film_arrow.gif similarity index 100% rename from skins/left_film_arrow.gif rename to Products/Portfolio/skins/left_film_arrow.gif diff --git a/skins/lightbox_btn.gif b/Products/Portfolio/skins/lightbox_btn.gif similarity index 100% rename from skins/lightbox_btn.gif rename to Products/Portfolio/skins/lightbox_btn.gif diff --git a/skins/lightbox_icon.png b/Products/Portfolio/skins/lightbox_icon.png similarity index 100% rename from skins/lightbox_icon.png rename to Products/Portfolio/skins/lightbox_icon.png diff --git a/skins/lightbox_save_control.py b/Products/Portfolio/skins/lightbox_save_control.py similarity index 100% rename from skins/lightbox_save_control.py rename to Products/Portfolio/skins/lightbox_save_control.py diff --git a/skins/lightbox_view.py b/Products/Portfolio/skins/lightbox_view.py similarity index 100% rename from skins/lightbox_view.py rename to Products/Portfolio/skins/lightbox_view.py diff --git a/skins/lightbox_view_template.pt b/Products/Portfolio/skins/lightbox_view_template.pt similarity index 100% rename from skins/lightbox_view_template.pt rename to Products/Portfolio/skins/lightbox_view_template.pt diff --git a/skins/lightboxcontext.py b/Products/Portfolio/skins/lightboxcontext.py similarity index 100% rename from skins/lightboxcontext.py rename to Products/Portfolio/skins/lightboxcontext.py diff --git a/skins/lrservice.py b/Products/Portfolio/skins/lrservice.py similarity index 100% rename from skins/lrservice.py rename to Products/Portfolio/skins/lrservice.py diff --git a/skins/metadata_edit_form_macros.pt b/Products/Portfolio/skins/metadata_edit_form_macros.pt similarity index 100% rename from skins/metadata_edit_form_macros.pt rename to Products/Portfolio/skins/metadata_edit_form_macros.pt diff --git a/skins/mosaique.js b/Products/Portfolio/skins/mosaique.js similarity index 100% rename from skins/mosaique.js rename to Products/Portfolio/skins/mosaique.js diff --git a/skins/mosaique.js.metadata b/Products/Portfolio/skins/mosaique.js.metadata similarity index 100% rename from skins/mosaique.js.metadata rename to Products/Portfolio/skins/mosaique.js.metadata diff --git a/skins/my_cart.py b/Products/Portfolio/skins/my_cart.py similarity index 100% rename from skins/my_cart.py rename to Products/Portfolio/skins/my_cart.py diff --git a/skins/my_cart_template.pt b/Products/Portfolio/skins/my_cart_template.pt similarity index 100% rename from skins/my_cart_template.pt rename to Products/Portfolio/skins/my_cart_template.pt diff --git a/skins/navigateur.js b/Products/Portfolio/skins/navigateur.js similarity index 100% rename from skins/navigateur.js rename to Products/Portfolio/skins/navigateur.js diff --git a/skins/navigateur.js.metadata b/Products/Portfolio/skins/navigateur.js.metadata similarity index 100% rename from skins/navigateur.js.metadata rename to Products/Portfolio/skins/navigateur.js.metadata diff --git a/skins/next_img_btn.gif b/Products/Portfolio/skins/next_img_btn.gif similarity index 100% rename from skins/next_img_btn.gif rename to Products/Portfolio/skins/next_img_btn.gif diff --git a/skins/no_image.jpg b/Products/Portfolio/skins/no_image.jpg similarity index 100% rename from skins/no_image.jpg rename to Products/Portfolio/skins/no_image.jpg diff --git a/skins/pause.gif b/Products/Portfolio/skins/pause.gif similarity index 100% rename from skins/pause.gif rename to Products/Portfolio/skins/pause.gif diff --git a/skins/photo_download.py b/Products/Portfolio/skins/photo_download.py similarity index 100% rename from skins/photo_download.py rename to Products/Portfolio/skins/photo_download.py diff --git a/skins/photo_edit_control.py b/Products/Portfolio/skins/photo_edit_control.py similarity index 100% rename from skins/photo_edit_control.py rename to Products/Portfolio/skins/photo_edit_control.py diff --git a/skins/photo_edit_form.py b/Products/Portfolio/skins/photo_edit_form.py similarity index 100% rename from skins/photo_edit_form.py rename to Products/Portfolio/skins/photo_edit_form.py diff --git a/skins/photo_edit_template.pt b/Products/Portfolio/skins/photo_edit_template.pt similarity index 100% rename from skins/photo_edit_template.pt rename to Products/Portfolio/skins/photo_edit_template.pt diff --git a/skins/photo_film_viewer.js b/Products/Portfolio/skins/photo_film_viewer.js similarity index 100% rename from skins/photo_film_viewer.js rename to Products/Portfolio/skins/photo_film_viewer.js diff --git a/skins/photo_film_viewer.js.metadata b/Products/Portfolio/skins/photo_film_viewer.js.metadata similarity index 100% rename from skins/photo_film_viewer.js.metadata rename to Products/Portfolio/skins/photo_film_viewer.js.metadata diff --git a/skins/photo_gridthumbnail.pt b/Products/Portfolio/skins/photo_gridthumbnail.pt similarity index 100% rename from skins/photo_gridthumbnail.pt rename to Products/Portfolio/skins/photo_gridthumbnail.pt diff --git a/skins/photo_icon.gif b/Products/Portfolio/skins/photo_icon.gif similarity index 100% rename from skins/photo_icon.gif rename to Products/Portfolio/skins/photo_icon.gif diff --git a/skins/photo_info.pt b/Products/Portfolio/skins/photo_info.pt similarity index 100% rename from skins/photo_info.pt rename to Products/Portfolio/skins/photo_info.pt diff --git a/skins/photo_layout_macros.pt b/Products/Portfolio/skins/photo_layout_macros.pt similarity index 100% rename from skins/photo_layout_macros.pt rename to Products/Portfolio/skins/photo_layout_macros.pt diff --git a/skins/photo_lightbox_viewer.js b/Products/Portfolio/skins/photo_lightbox_viewer.js similarity index 100% rename from skins/photo_lightbox_viewer.js rename to Products/Portfolio/skins/photo_lightbox_viewer.js diff --git a/skins/photo_medium.pt b/Products/Portfolio/skins/photo_medium.pt similarity index 100% rename from skins/photo_medium.pt rename to Products/Portfolio/skins/photo_medium.pt diff --git a/skins/photo_metadata_edit_control.py b/Products/Portfolio/skins/photo_metadata_edit_control.py similarity index 100% rename from skins/photo_metadata_edit_control.py rename to Products/Portfolio/skins/photo_metadata_edit_control.py diff --git a/skins/photo_view.pt b/Products/Portfolio/skins/photo_view.pt similarity index 100% rename from skins/photo_view.pt rename to Products/Portfolio/skins/photo_view.pt diff --git a/skins/photo_view_ajax.py b/Products/Portfolio/skins/photo_view_ajax.py similarity index 100% rename from skins/photo_view_ajax.py rename to Products/Portfolio/skins/photo_view_ajax.py diff --git a/skins/photo_view_ajax_template.pt b/Products/Portfolio/skins/photo_view_ajax_template.pt similarity index 100% rename from skins/photo_view_ajax_template.pt rename to Products/Portfolio/skins/photo_view_ajax_template.pt diff --git a/skins/play.ai b/Products/Portfolio/skins/play.ai similarity index 100% rename from skins/play.ai rename to Products/Portfolio/skins/play.ai diff --git a/skins/play.gif b/Products/Portfolio/skins/play.gif similarity index 100% rename from skins/play.gif rename to Products/Portfolio/skins/play.gif diff --git a/skins/portfolio_edit_form.py b/Products/Portfolio/skins/portfolio_edit_form.py similarity index 100% rename from skins/portfolio_edit_form.py rename to Products/Portfolio/skins/portfolio_edit_form.py diff --git a/skins/portfolio_icon.gif b/Products/Portfolio/skins/portfolio_icon.gif similarity index 100% rename from skins/portfolio_icon.gif rename to Products/Portfolio/skins/portfolio_icon.gif diff --git a/skins/portfolio_move_photos.py b/Products/Portfolio/skins/portfolio_move_photos.py similarity index 100% rename from skins/portfolio_move_photos.py rename to Products/Portfolio/skins/portfolio_move_photos.py diff --git a/skins/portfolio_presentation_form.py b/Products/Portfolio/skins/portfolio_presentation_form.py similarity index 100% rename from skins/portfolio_presentation_form.py rename to Products/Portfolio/skins/portfolio_presentation_form.py diff --git a/skins/portfolio_presentation_template.pt b/Products/Portfolio/skins/portfolio_presentation_template.pt similarity index 100% rename from skins/portfolio_presentation_template.pt rename to Products/Portfolio/skins/portfolio_presentation_template.pt diff --git a/skins/portfolio_properties.props b/Products/Portfolio/skins/portfolio_properties.props similarity index 100% rename from skins/portfolio_properties.props rename to Products/Portfolio/skins/portfolio_properties.props diff --git a/skins/portfolio_style.css.dtml b/Products/Portfolio/skins/portfolio_style.css.dtml similarity index 100% rename from skins/portfolio_style.css.dtml rename to Products/Portfolio/skins/portfolio_style.css.dtml diff --git a/skins/portfolio_thumbnails_tail.py b/Products/Portfolio/skins/portfolio_thumbnails_tail.py similarity index 100% rename from skins/portfolio_thumbnails_tail.py rename to Products/Portfolio/skins/portfolio_thumbnails_tail.py diff --git a/skins/portfolio_thumbnails_tail_template.pt b/Products/Portfolio/skins/portfolio_thumbnails_tail_template.pt similarity index 100% rename from skins/portfolio_thumbnails_tail_template.pt rename to Products/Portfolio/skins/portfolio_thumbnails_tail_template.pt diff --git a/skins/portfolio_upload.js b/Products/Portfolio/skins/portfolio_upload.js similarity index 100% rename from skins/portfolio_upload.js rename to Products/Portfolio/skins/portfolio_upload.js diff --git a/skins/portfolio_upload.js.metadata b/Products/Portfolio/skins/portfolio_upload.js.metadata similarity index 100% rename from skins/portfolio_upload.js.metadata rename to Products/Portfolio/skins/portfolio_upload.js.metadata diff --git a/skins/portfolio_view.pt b/Products/Portfolio/skins/portfolio_view.pt similarity index 100% rename from skins/portfolio_view.pt rename to Products/Portfolio/skins/portfolio_view.pt diff --git a/skins/prev_img_btn.gif b/Products/Portfolio/skins/prev_img_btn.gif similarity index 100% rename from skins/prev_img_btn.gif rename to Products/Portfolio/skins/prev_img_btn.gif diff --git a/skins/refresh.png b/Products/Portfolio/skins/refresh.png similarity index 100% rename from skins/refresh.png rename to Products/Portfolio/skins/refresh.png diff --git a/skins/remove_to_lightbox.py b/Products/Portfolio/skins/remove_to_lightbox.py similarity index 100% rename from skins/remove_to_lightbox.py rename to Products/Portfolio/skins/remove_to_lightbox.py diff --git a/skins/remove_to_selection.py b/Products/Portfolio/skins/remove_to_selection.py similarity index 100% rename from skins/remove_to_selection.py rename to Products/Portfolio/skins/remove_to_selection.py diff --git a/skins/retractable_menu.js b/Products/Portfolio/skins/retractable_menu.js similarity index 100% rename from skins/retractable_menu.js rename to Products/Portfolio/skins/retractable_menu.js diff --git a/skins/right_film_arrow.gif b/Products/Portfolio/skins/right_film_arrow.gif similarity index 100% rename from skins/right_film_arrow.gif rename to Products/Portfolio/skins/right_film_arrow.gif diff --git a/skins/save_as_lightbox_form.py b/Products/Portfolio/skins/save_as_lightbox_form.py similarity index 100% rename from skins/save_as_lightbox_form.py rename to Products/Portfolio/skins/save_as_lightbox_form.py diff --git a/skins/save_as_lightbox_template.pt b/Products/Portfolio/skins/save_as_lightbox_template.pt similarity index 100% rename from skins/save_as_lightbox_template.pt rename to Products/Portfolio/skins/save_as_lightbox_template.pt diff --git a/skins/select_flag_btn.gif b/Products/Portfolio/skins/select_flag_btn.gif similarity index 100% rename from skins/select_flag_btn.gif rename to Products/Portfolio/skins/select_flag_btn.gif diff --git a/skins/selection_view.py b/Products/Portfolio/skins/selection_view.py similarity index 100% rename from skins/selection_view.py rename to Products/Portfolio/skins/selection_view.py diff --git a/skins/selection_view_template.pt b/Products/Portfolio/skins/selection_view_template.pt similarity index 100% rename from skins/selection_view_template.pt rename to Products/Portfolio/skins/selection_view_template.pt diff --git a/skins/selectioncontext.py b/Products/Portfolio/skins/selectioncontext.py similarity index 100% rename from skins/selectioncontext.py rename to Products/Portfolio/skins/selectioncontext.py diff --git a/skins/sell_macros.pt b/Products/Portfolio/skins/sell_macros.pt similarity index 100% rename from skins/sell_macros.pt rename to Products/Portfolio/skins/sell_macros.pt diff --git a/skins/sellbar-arrow.gif b/Products/Portfolio/skins/sellbar-arrow.gif similarity index 100% rename from skins/sellbar-arrow.gif rename to Products/Portfolio/skins/sellbar-arrow.gif diff --git a/skins/set_photo_title.py b/Products/Portfolio/skins/set_photo_title.py similarity index 100% rename from skins/set_photo_title.py rename to Products/Portfolio/skins/set_photo_title.py diff --git a/skins/shipping_set_control.py b/Products/Portfolio/skins/shipping_set_control.py similarity index 100% rename from skins/shipping_set_control.py rename to Products/Portfolio/skins/shipping_set_control.py diff --git a/skins/shipping_template.pt b/Products/Portfolio/skins/shipping_template.pt similarity index 100% rename from skins/shipping_template.pt rename to Products/Portfolio/skins/shipping_template.pt diff --git a/skins/slide-cart-btn.png b/Products/Portfolio/skins/slide-cart-btn.png similarity index 100% rename from skins/slide-cart-btn.png rename to Products/Portfolio/skins/slide-cart-btn.png diff --git a/skins/slide-cart-btn.png.metadata b/Products/Portfolio/skins/slide-cart-btn.png.metadata similarity index 100% rename from skins/slide-cart-btn.png.metadata rename to Products/Portfolio/skins/slide-cart-btn.png.metadata diff --git a/skins/slide-del-btn.png b/Products/Portfolio/skins/slide-del-btn.png similarity index 100% rename from skins/slide-del-btn.png rename to Products/Portfolio/skins/slide-del-btn.png diff --git a/skins/slide-deselect-btn.png b/Products/Portfolio/skins/slide-deselect-btn.png similarity index 100% rename from skins/slide-deselect-btn.png rename to Products/Portfolio/skins/slide-deselect-btn.png diff --git a/skins/slide-eye-closed.png b/Products/Portfolio/skins/slide-eye-closed.png similarity index 100% rename from skins/slide-eye-closed.png rename to Products/Portfolio/skins/slide-eye-closed.png diff --git a/skins/slide-eye-open-btn.png b/Products/Portfolio/skins/slide-eye-open-btn.png similarity index 100% rename from skins/slide-eye-open-btn.png rename to Products/Portfolio/skins/slide-eye-open-btn.png diff --git a/skins/slide-eye-open-btn.png.metadata b/Products/Portfolio/skins/slide-eye-open-btn.png.metadata similarity index 100% rename from skins/slide-eye-open-btn.png.metadata rename to Products/Portfolio/skins/slide-eye-open-btn.png.metadata diff --git a/skins/slide-select-btn.png b/Products/Portfolio/skins/slide-select-btn.png similarity index 100% rename from skins/slide-select-btn.png rename to Products/Portfolio/skins/slide-select-btn.png diff --git a/skins/slide-select-btn.png.metadata b/Products/Portfolio/skins/slide-select-btn.png.metadata similarity index 100% rename from skins/slide-select-btn.png.metadata rename to Products/Portfolio/skins/slide-select-btn.png.metadata diff --git a/skins/slide_show.pt b/Products/Portfolio/skins/slide_show.pt similarity index 100% rename from skins/slide_show.pt rename to Products/Portfolio/skins/slide_show.pt diff --git a/skins/slide_show.swf b/Products/Portfolio/skins/slide_show.swf similarity index 100% rename from skins/slide_show.swf rename to Products/Portfolio/skins/slide_show.swf diff --git a/skins/slide_show_btn.gif b/Products/Portfolio/skins/slide_show_btn.gif similarity index 100% rename from skins/slide_show_btn.gif rename to Products/Portfolio/skins/slide_show_btn.gif diff --git a/skins/slide_style.css b/Products/Portfolio/skins/slide_style.css similarity index 100% rename from skins/slide_style.css rename to Products/Portfolio/skins/slide_style.css diff --git a/skins/slide_style.css.metadata b/Products/Portfolio/skins/slide_style.css.metadata similarity index 100% rename from skins/slide_style.css.metadata rename to Products/Portfolio/skins/slide_style.css.metadata diff --git a/skins/slidebg_del.gif b/Products/Portfolio/skins/slidebg_del.gif similarity index 100% rename from skins/slidebg_del.gif rename to Products/Portfolio/skins/slidebg_del.gif diff --git a/skins/slidebg_desel.gif b/Products/Portfolio/skins/slidebg_desel.gif similarity index 100% rename from skins/slidebg_desel.gif rename to Products/Portfolio/skins/slidebg_desel.gif diff --git a/skins/slidebg_desel_del.gif b/Products/Portfolio/skins/slidebg_desel_del.gif similarity index 100% rename from skins/slidebg_desel_del.gif rename to Products/Portfolio/skins/slidebg_desel_del.gif diff --git a/skins/slidebg_sel.gif b/Products/Portfolio/skins/slidebg_sel.gif similarity index 100% rename from skins/slidebg_sel.gif rename to Products/Portfolio/skins/slidebg_sel.gif diff --git a/skins/slidebg_sel_del.gif b/Products/Portfolio/skins/slidebg_sel_del.gif similarity index 100% rename from skins/slidebg_sel_del.gif rename to Products/Portfolio/skins/slidebg_sel_del.gif diff --git a/skins/slider_bg.gif b/Products/Portfolio/skins/slider_bg.gif similarity index 100% rename from skins/slider_bg.gif rename to Products/Portfolio/skins/slider_bg.gif diff --git a/skins/style.css b/Products/Portfolio/skins/style.css similarity index 100% rename from skins/style.css rename to Products/Portfolio/skins/style.css diff --git a/skins/swfobject.js b/Products/Portfolio/skins/swfobject.js similarity index 100% rename from skins/swfobject.js rename to Products/Portfolio/skins/swfobject.js diff --git a/skins/thumbnail.jpg b/Products/Portfolio/skins/thumbnail.jpg similarity index 100% rename from skins/thumbnail.jpg rename to Products/Portfolio/skins/thumbnail.jpg diff --git a/skins/tiling_infos.xml.py b/Products/Portfolio/skins/tiling_infos.xml.py similarity index 100% rename from skins/tiling_infos.xml.py rename to Products/Portfolio/skins/tiling_infos.xml.py diff --git a/skins/tiling_infos_template.pt b/Products/Portfolio/skins/tiling_infos_template.pt similarity index 100% rename from skins/tiling_infos_template.pt rename to Products/Portfolio/skins/tiling_infos_template.pt diff --git a/skins/transparent.gif b/Products/Portfolio/skins/transparent.gif similarity index 100% rename from skins/transparent.gif rename to Products/Portfolio/skins/transparent.gif diff --git a/skins/trash.png b/Products/Portfolio/skins/trash.png similarity index 100% rename from skins/trash.png rename to Products/Portfolio/skins/trash.png diff --git a/skins/trash_btn.gif b/Products/Portfolio/skins/trash_btn.gif similarity index 100% rename from skins/trash_btn.gif rename to Products/Portfolio/skins/trash_btn.gif diff --git a/skins/unselect_flag_btn.gif b/Products/Portfolio/skins/unselect_flag_btn.gif similarity index 100% rename from skins/unselect_flag_btn.gif rename to Products/Portfolio/skins/unselect_flag_btn.gif diff --git a/skins/zoom_disabled.gif b/Products/Portfolio/skins/zoom_disabled.gif similarity index 100% rename from skins/zoom_disabled.gif rename to Products/Portfolio/skins/zoom_disabled.gif diff --git a/skins/zoom_in.gif b/Products/Portfolio/skins/zoom_in.gif similarity index 100% rename from skins/zoom_in.gif rename to Products/Portfolio/skins/zoom_in.gif diff --git a/skins/zoom_out.gif b/Products/Portfolio/skins/zoom_out.gif similarity index 100% rename from skins/zoom_out.gif rename to Products/Portfolio/skins/zoom_out.gif diff --git a/skins/zoom_view.pt b/Products/Portfolio/skins/zoom_view.pt similarity index 100% rename from skins/zoom_view.pt rename to Products/Portfolio/skins/zoom_view.pt diff --git a/tool.gif b/Products/Portfolio/tool.gif similarity index 100% rename from tool.gif rename to Products/Portfolio/tool.gif diff --git a/update-i18n.sh b/Products/Portfolio/update-i18n.sh similarity index 100% rename from update-i18n.sh rename to Products/Portfolio/update-i18n.sh diff --git a/utils.py b/Products/Portfolio/utils.py similarity index 100% rename from utils.py rename to Products/Portfolio/utils.py diff --git a/version.txt b/Products/Portfolio/version.txt similarity index 100% rename from version.txt rename to Products/Portfolio/version.txt diff --git a/www/manageProcessor.zpt b/Products/Portfolio/www/manageProcessor.zpt similarity index 100% rename from www/manageProcessor.zpt rename to Products/Portfolio/www/manageProcessor.zpt diff --git a/Products/__init__.py b/Products/__init__.py new file mode 100644 index 0000000..d407605 --- /dev/null +++ b/Products/__init__.py @@ -0,0 +1,5 @@ +try: + __import__('pkg_resources').declare_namespace(__name__) +except ImportError: + from pkgutil import extend_path + __path__ = extend_path(__path__, __name__) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..9b8e428 --- /dev/null +++ b/setup.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +from setuptools import setup, find_packages + + +setup(name='Products.Portfolio', + version='3.0', + description='Photo management for Plinn CMS', + url='http://plinn.org', + author="Benoît Pin â MINES ParisTech â Armines", + author_email="benoit.pin@mines-paristech.fr", + license="GPL", + packages=find_packages(), + include_package_data=True, + namespace_packages=['Products'], + zip_safe=False, + install_requires=[] #TODO + ) -- 2.20.1 From 48537985d4ab422006ad0ea6e0b4fbf1c1fe3365 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Tue, 14 Apr 2015 09:48:51 +0200 Subject: [PATCH 16/16] =?utf8?q?M=C3=A9nage,=20lint.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Products/Portfolio/skins/photo_lightbox_viewer.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Products/Portfolio/skins/photo_lightbox_viewer.js b/Products/Portfolio/skins/photo_lightbox_viewer.js index ba3ecf1..8b19c3f 100644 --- a/Products/Portfolio/skins/photo_lightbox_viewer.js +++ b/Products/Portfolio/skins/photo_lightbox_viewer.js @@ -24,7 +24,7 @@ Lightbox = function(grid, toolbar, complete, container_type, orderable) { addListener(window, 'scroll', function(evt){self.windowScrollToolbarlHandler(evt);}); } addListener(window, 'scroll', function(evt){self.windowScrollGridHandler(evt);}); - registerStartupFunction(function(){ self.windowScrollGridHandler();}); + addListener(window, 'load', function(evt){self.windowScrollGridHandler();}); this.lastCBChecked = undefined; this.form = undefined; var parent = this.grid.parentNode; @@ -82,9 +82,7 @@ Lightbox.prototype.windowScrollToolbarlHandler = function(evt) { Lightbox.prototype.windowScrollGridHandler = function(evt) { if (!this.complete && !this.fetchingDisabled && - getWindowScrollY() > - (this.lastSlide.firstElementChild || this.lastSlide.children[0]).offsetTop - - getWindowHeight()) { + getWindowScrollY() > (this.lastSlide.firstElementChild || this.lastSlide.children[0]).offsetTop - getWindowHeight()) { this.fetchingDisabled = true; this.fetchTail(); } -- 2.20.1