--- /dev/null
+##parameters=addTemplate='', edit='', deleteOptionContainer='', createOptionsContainer=''
+from Products.CMFCore.utils import getToolByName
+from Products.photoprint.utils import translate as _
+
+utool = getToolByName(context, 'portal_url')
+pptool = getToolByName(context, 'portal_photo_print')
+form = context.REQUEST.form.copy()
+
+if addTemplate:
+ context.REQUEST.RESPONSE.setHeader('Content-Type', 'text/xml;;charset=utf-8');
+ fg = form.get
+
+ try :
+ orderTemplate = pptool.addPrintOrderTemplate( context
+ , title=fg('title')
+ , description=fg('description')
+ , productReference=fg('productReference')
+ , maxCopies=fg('maxCopies')
+ , price=fg('price')
+ , VATRate=fg('VATRate')
+ )
+ templateOptions = {}
+ templateOptions['o'] = orderTemplate
+ classRowName = 'odd'
+ if context.printingOptions.getObjectPosition(orderTemplate.getId()) % 2 == 0 :
+ classRowName = 'even'
+ templateOptions['classRowName'] = classRowName
+ templateOptions['portal_url'] = utool()
+ widget = context.get_photo_print_order_template(**templateOptions).encode('utf-8').strip()
+ return '<computedField type="added">%s</computedField>' % widget
+
+ except ValueError, e:
+ return '<error>%s</error>' % _(e)
+
+elif edit:
+ context.REQUEST.RESPONSE.setHeader('Content-Type', 'text/xml;;charset=utf-8');
+ id = form.pop('id')
+ try :
+ orderTemplate = pptool.editPrintOrderTemplate(context, id, **form)
+
+ templateOptions = {}
+ templateOptions['o'] = orderTemplate
+ classRowName = 'odd'
+ if context.printingOptions.getObjectPosition(orderTemplate.getId()) % 2 == 0 :
+ classRowName = 'even'
+ templateOptions['classRowName'] = classRowName
+ templateOptions['portal_url'] = utool()
+ widget = context.get_photo_print_order_template(**templateOptions).encode('utf-8').strip()
+ return '<computedField type="edited">%s</computedField>' % widget
+ except ValueError, e :
+ return '<error>%s</error>' % _(e)
+
+elif createOptionsContainer :
+ pptool.createPrintingOptionsContainer(context)
+ context.setStatus(True, _('Printing options added.'))
+
+elif deleteOptionContainer :
+ pptool.deletePrintingOptionsContainer(context)
+ context.setStatus(True, _('Printing options deleted.'))
+
+
+options = {}
+options['pptool'] = pptool
+options['hasPO'] = pptool.hasPrintingOptions(context)
+pOptionsSrc = pptool.getPrintingOptionsSrc(context)
+if pOptionsSrc :
+ pourl = pOptionsSrc.getActionInfo('object/printing_settings')['url']
+else :
+ pourl = None
+options['pourl'] = pourl
+
+return context.photoprint_templates_edit_template(**options)