def get_receipt(self): """ return a receipt text (used just before sending user to paypal) """ itemlist = self.context.getItems() items = {} for item in itemlist: items[ item['id'] ] = item # Sort items by id, extracting key before ':' itemids = items.keys() #[ a['id'] for a in itemlist ] itemids.sort(key=lambda x:x.split(':')[0]) invoiceditems = [] receipt = "<ul>" for itemid in itemids: item = items[itemid] if int(item['price']) > 0: label = "Pay $%s for %s" % (item['price'],item['name'],) else: label = "Indicated %s" % item['name'] if itemid.find(':') > 0: groupid = 'group%s' % itemid.split(':')[0] if self.context.REQUEST.get(groupid) == itemid: # then this item was checked invoiceditems.append(item) receipt = receipt + "<li>%s<li/>" % label else: name = 'checkbox%s' % itemid if self.context.REQUEST.get(name): # then this item was checked invoiceditems.append(item) receipt = receipt + "<li>%s<li/>" % label transaction = self.context.addTransaction( context=gcommons_aq_container(self.context), userid=self.portal_membership.getAuthenticatedMember().getId(), items=invoiceditems) total = transaction.total() receipt = receipt + "</ul><strong>The total amount is $%s (%s USD)<p/>" % (total, gcommons_spoken_number(total).upper()) return { 'total': total, 'invoiceno': transaction.id(), 'html': receipt, 'comment': receipt, 'description': transaction.description() }
def __init__(self, context): self.context = context # Grab list of editors from container (Journal, Conference, whatever) gccontainer = gcommons_aq_container(self.context) self.editors = gccontainer.getEditors() self.vocab= SimpleVocabulary.fromItems([(x.getProperty('fullname'),x.getId()) for x in self.editors])
def getLetterUrl(self): container = gcommons_aq_container(self.context) return "%s/Letter.doc" % container.absolute_url()