Exemplo n.º 1
0
 def render_salaried(self, colname, record):
     if not self.check_modify_order(record):
         salaried = OrderData(self.context, order=record).salaried
         return translate(vocabs.salaried_vocab()[salaried],
                          context=self.request)
     return OrderSalariedDropdown(self.context, self.request,
                                  record).render()
Exemplo n.º 2
0
 def _sendmail(self, notifier, uid, tpl, subject):
     order_data = OrderData(self.context, uid=uid)
     order = order_data.order
     data = {}
     for key in TEMPLATE.defaults:
         # XXX: refactor and use configurable callbacks
         # special case gender
         if key == 'personal_data.gender':
             data[key] = translate(mail_gender_vocab()[order.attrs[key]],
                                   context=self.request)
             continue
         # special case salaried
         if key == 'salaried':
             data[key] = translate(salaried_vocab()[order_data.salaried],
                                   context=self.request)
             continue
         # special case state
         if key == 'state':
             data[key] = translate(state_vocab()[order_data.state],
                                   context=self.request)
             continue
         # read attrs from order
         if key in order.attrs:
             data[key] = order.attrs[key]
     body = TEMPLATE(tpl, data).encode('utf-8')
     notifier.send(subject, body, order.attrs['personal_data.email'])
Exemplo n.º 3
0
 def listing(self):
     # XXX: discount
     ret = list()
     for booking in self.order_data.bookings:
         obj = get_object_by_uid(self.context, booking.attrs['buyable_uid'])
         state = vocabs.state_vocab()[booking.attrs.get('state')]
         salaried = vocabs.salaried_vocab()[booking.attrs.get('salaried')]
         ret.append({
             'uid':
             booking.attrs['uid'],
             'title':
             booking.attrs['title'],
             'url':
             obj.absolute_url(),
             'count':
             booking.attrs['buyable_count'],
             'net':
             ascur(booking.attrs.get('net', 0.0)),
             'discount_net':
             ascur(float(booking.attrs['discount_net'])),
             'vat':
             booking.attrs.get('vat', 0.0),
             'comment':
             booking.attrs['buyable_comment'],
             'quantity_unit':
             booking.attrs.get('quantity_unit'),
             'currency':
             booking.attrs.get('currency'),
             'state':
             state,
             'salaried':
             salaried,
         })
     return ret
Exemplo n.º 4
0
 def listing(self):
     # XXX: discount
     ret = list()
     for booking in self.order_data.bookings:
         obj = get_object_by_uid(self.context, booking.attrs['buyable_uid'])
         state = vocabs.state_vocab()[booking.attrs.get('state')]
         salaried = vocabs.salaried_vocab()[booking.attrs.get('salaried')]
         ret.append({
             'uid': booking.attrs['uid'],
             'title': booking.attrs['title'],
             'url': obj.absolute_url(),
             'reserved': reserved(
                 booking.attrs['remaining_stock_available'],
                 booking.attrs['buyable_count']),
             'count': booking.attrs['buyable_count'],
             'net': ascur(booking.attrs.get('net', 0.0)),
             'discount_net': ascur(float(booking.attrs['discount_net'])),
             'vat': booking.attrs.get('vat', 0.0),
             'comment': booking.attrs['buyable_comment'],
             'quantity_unit': booking.attrs.get('quantity_unit'),
             'currency': booking.attrs.get('currency'),
             'state': state,
             'salaried': salaried,
         })
     return ret
 def _sendmail(self, notifier, uid, tpl, subject):
     order_data = OrderData(self.context, uid=uid)
     order = order_data.order
     data = {}
     for key in TEMPLATE.defaults:
         # XXX: refactor and use configurable callbacks
         # special case gender
         if key == 'personal_data.gender':
             data[key] = translate(mail_gender_vocab()[order.attrs[key]],
                                   context=self.request)
             continue
         # special case salaried
         if key == 'salaried':
             data[key] = translate(salaried_vocab()[order_data.salaried],
                                   context=self.request)
             continue
         # special case state
         if key == 'state':
             data[key] = translate(state_vocab()[order_data.state],
                                   context=self.request)
             continue
         # read attrs from order
         if key in order.attrs:
             data[key] = order.attrs[key]
     body = TEMPLATE(tpl, data).encode('utf-8')
     notifier.send(subject, body, order.attrs['personal_data.email'])
Exemplo n.º 6
0
 def listing(self):
     # XXX: discount
     can_cancel_booking = self.can_cancel_booking
     ret = list()
     for booking in self.order_data.bookings:
         obj = get_object_by_uid(self.context, booking.attrs['buyable_uid'])
         state = vocabs.state_vocab()[booking.attrs.get('state')]
         salaried = vocabs.salaried_vocab()[booking.attrs.get('salaried')]
         cancel_target = None
         if can_cancel_booking and state != ifaces.STATE_CANCELLED:
             cancel_target = addTokenToUrl('{}?uid={}'.format(
                 self.context.absolute_url(),
                 booking.attrs['uid'])
             )
         ret.append({
             'uid': booking.attrs['uid'],
             'title': booking.attrs['title'],
             'url': obj.absolute_url() if obj else None,
             'cancel_target': cancel_target,
             'count': booking.attrs['buyable_count'],
             'net': ascur(booking.attrs.get('net', 0.0)),
             'discount_net': ascur(float(booking.attrs['discount_net'])),
             'vat': booking.attrs.get('vat', 0.0),
             'comment': booking.attrs['buyable_comment'],
             'quantity_unit': booking.attrs.get('quantity_unit'),
             'currency': booking.attrs.get('currency'),
             'state': state,
             'salaried': salaried,
         })
     return ret
Exemplo n.º 7
0
 def render_salaried(self, colname, record):
     if not self.check_modify_order(record):
         salaried = OrderData(self.context, order=record).salaried
         return translate(vocabs.salaried_vocab()[salaried],
                          context=self.request)
     return OrderSalariedDropdown(
         self.context,
         self.request,
         record
     ).render()
Exemplo n.º 8
0
 def render_salaried(self, colname, record):
     if not self.check_modify_order(record):
         booking_data = BookingData(
             self.context,
             booking=record
         )
         return translate(
             vocabs.salaried_vocab()[booking_data.salaried],
             context=self.request
         )
     return BookingSalariedDropdown(
         self.context,
         self.request,
         record
     ).render()
Exemplo n.º 9
0
 def render_salaried(self, colname, record):
     if not self.check_modify_order(record):
         booking_data = BookingData(
             self.context,
             booking=record
         )
         return translate(
             vocabs.salaried_vocab()[booking_data.salaried],
             context=self.request
         )
     return BookingSalariedDropdown(
         self.context,
         self.request,
         record
     ).render()
Exemplo n.º 10
0
class OrderSalariedDropdown(OrderDropdown):
    name = 'salaried'
    css = 'dropdown change_order_salaried_dropdown'
    action = 'ordersalariedtransition'
    vocab = vocabs.salaried_vocab()
    transitions = vocabs.salaried_transitions_vocab()

    @property
    def value(self):
        return self.order_data.salaried or ifaces.SALARIED_NO

    @property
    def items(self):
        transitions = transitions_of_salaried_state(self.value)
        return self.create_items(transitions)
Exemplo n.º 11
0
class BookingSalariedDropdown(BookingsDropdown):
    name = 'salaried'
    css = 'dropdown change_booking_salaried_dropdown'
    action = 'bookingsalariedtransition'
    vocab = vocabs.salaried_vocab()
    transitions = vocabs.salaried_transitions_vocab()

    @property
    def value(self):
        return self.booking_data.salaried or ifaces.SALARIED_NO

    @property
    def items(self):
        transitions = transitions_of_salaried_state(self.value)
        return self.create_items(transitions)
Exemplo n.º 12
0
 def salaried(self):
     salaried = self.order_data.salaried or ifaces.SALARIED_NO
     return vocabs.salaried_vocab()[salaried]
Exemplo n.º 13
0
def salaried_form_vocab():
    salaried = vocabs.salaried_vocab()
    return [('', _('all', default='All'))] + salaried.items()
Exemplo n.º 14
0
 def render_salaried(self, colname, record):
     salaried = OrderData(self.context, order=record).salaried\
         or ifaces.SALARIED_NO
     return translate(vocabs.salaried_vocab()[salaried],
                      context=self.request)
Exemplo n.º 15
0
 def salaried(self):
     salaried = self.order_data.salaried or ifaces.SALARIED_NO
     return vocabs.salaried_vocab()[salaried]
Exemplo n.º 16
0
def salaried_form_vocab():
    salaried = vocabs.salaried_vocab()
    return [('', _('all', default='All'))] + salaried.items()
Exemplo n.º 17
0
 def render_salaried(self, colname, record):
     salaried = OrderData(self.context, order=record).salaried\
         or ifaces.SALARIED_NO
     return translate(vocabs.salaried_vocab()[salaried],
                      context=self.request)