Example #1
0
 def get_item_value(self, resource, context, item, column):
     item_brain, item_resource = item
     #if column == 'description':
     #    return item_resource.get_property('description')
     if column == 'review':
         return item_resource.get_title(), context.get_link(item_resource)
     elif column == 'product':
         product = item_resource.parent.parent
         return product.get_title(), context.get_link(product)
     elif column == 'author':
         author = item_resource.get_property('author')
         if author:
             user = context.root.get_resource('/users/%s' % author)
             return user.get_title(), context.get_link(user)
         return MSG(u'Anonymous'), None
     elif column == 'remote_ip':
         return item_resource.get_property('remote_ip')
     elif column == 'note':
         return item_resource.get_property('note')
     elif column == 'ctime':
         ctime = item_resource.get_property('ctime')
         accept = context.accept_language
         return format_datetime(ctime, accept)
     #elif column == 'images':
     #    namespace = {'images': item_resource.get_images(context)}
     #    events = XMLParser("""
     #        <a href="${image/src}/;download" target="_blank" stl:repeat="image images"
     #          rel="fancybox">
     #          <img src="${image/src}/;thumb?width=50&amp;height=50"/>
     #        </a>
     #        """, stl_namespaces)
     #    return stl(events=events, namespace=namespace)
     return SearchTableFolder_View.get_item_value(self, resource, context,
                                                  item, column)
Example #2
0
 def get_item_value(self, resource, context, item, column):
     item_brain, item_resource = item
     # Default columns
     if column == "name":
         name = item_brain.name
         return name, name
     elif column == "title":
         return item_resource.get_title(), context.get_link(item_resource)
     elif column == "backlinks":
         abspath = item_resource.get_canonical_path()
         search = context.root.search(links=str(abspath))
         return len(search), "%s/;backlinks" % context.get_link(item_resource)
     # Guess from schema
     schema = item_resource.get_metadata_schema()
     computed_schema = getattr(item_resource, "computed_schema", {})
     if schema.has_key(column):
         datatype = schema[column]
         value = item_resource.get_property(column)
         if issubclass(datatype, Enumerate):
             return datatype.get_value(value)
         elif issubclass(datatype, Boolean):
             return bool_to_img(value)
         elif issubclass(datatype, DateTime):
             if value is None:
                 return u"-"
             accept = context.accept_language
             return format_datetime(value, accept)
         return value
     # Computed columns
     elif computed_schema.has_key(column):
         return getattr(item_resource, column)
     # Other column
     proxy = super(SearchTableFolder_View, self)
     return proxy.get_item_value(resource, context, item, column)
Example #3
0
    def get_namespace(self, context):
        # Build namespace
        namespace = {
            'author': self.get_namespace_author(context),
            'href': context.get_link(self),
            'images': self.get_images(context)
        }
        for key in ['title', 'note', 'advantages', 'disadvantages']:
            namespace[key] = self.get_property(key)
        # Add informations about product
        product = self.parent.parent
        namespace['product'] = {
            'link': context.get_link(product),
            'title': product.get_title()
        }
        # Context
        here = context.resource
        namespace['is_on_user_view'] = here.class_id == 'user'
        namespace['is_on_product_view'] = here.class_id == 'product'
        # Description
        description = self.get_property('description').encode('utf-8')
        description = XMLContent.encode(description)
        namespace['description'] = XMLParser(description.replace(
            '\n', '<br/>'))
        # ctime
        ctime = self.get_property('ctime')
        accept = context.accept_language
        namespace['ctime'] = format_datetime(ctime, accept)
        # Recommendation
        recommended = self.get_property('recommended') or 0
        namespace['recommendation'] = bool(int(recommended))

        return namespace
Example #4
0
    def get_namespace(self, context):
        # Build namespace
        namespace = {'author': self.get_namespace_author(context),
                     'href': context.get_link(self),
                     'images': self.get_images(context)}
        for key in ['title', 'note', 'advantages', 'disadvantages']:
            namespace[key] = self.get_property(key)
        # Add informations about product
        product = self.parent.parent
        namespace['product'] = {'link': context.get_link(product),
                                'title': product.get_title()}
        # Context
        here = context.resource
        namespace['is_on_user_view'] = here.class_id == 'user'
        namespace['is_on_product_view'] = here.class_id == 'product'
        # Description
        description = self.get_property('description').encode('utf-8')
        description = XMLContent.encode(description)
        namespace['description'] = XMLParser(description.replace('\n', '<br/>'))
        # ctime
        ctime = self.get_property('ctime')
        accept = context.accept_language
        namespace['ctime'] = format_datetime(ctime, accept)
        # Recommendation
        recommended = self.get_property('recommended') or 0
        namespace['recommendation'] = bool(int(recommended))

        return namespace
Example #5
0
 def get_item_value(self, resource, context, item, column):
     item_brain, item_resource = item
     #if column == 'description':
     #    return item_resource.get_property('description')
     if column == 'review':
         return item_resource.get_title(), context.get_link(item_resource)
     elif column == 'product':
         product = item_resource.parent.parent
         return product.get_title(), context.get_link(product)
     elif column == 'author':
         author = item_resource.get_property('author')
         if author:
             user = context.root.get_resource('/users/%s' % author)
             return user.get_title(), context.get_link(user)
         return MSG(u'Anonymous'), None
     elif column == 'remote_ip':
         return item_resource.get_property('remote_ip')
     elif column == 'note':
         return item_resource.get_property('note')
     elif column == 'ctime':
         ctime = item_resource.get_property('ctime')
         accept = context.accept_language
         return format_datetime(ctime, accept)
     #elif column == 'images':
     #    namespace = {'images': item_resource.get_images(context)}
     #    events = XMLParser("""
     #        <a href="${image/src}/;download" target="_blank" stl:repeat="image images"
     #          rel="fancybox">
     #          <img src="${image/src}/;thumb?width=50&amp;height=50"/>
     #        </a>
     #        """, stl_namespaces)
     #    return stl(events=events, namespace=namespace)
     return SearchTableFolder_View.get_item_value(self, resource, context, item, column)
Example #6
0
 def get_item_value(self, resource, context, item, column):
     item_brain, item_resource = item
     # Default columns
     if column == 'name':
         name = item_brain.name
         return name, name
     elif column == 'title':
         return item_resource.get_title(), context.get_link(item_resource)
     elif column == 'backlinks':
         abspath = item_resource.get_canonical_path()
         search = context.root.search(links=str(abspath))
         return len(
             search), '%s/;backlinks' % context.get_link(item_resource)
     # Guess from schema
     schema = item_resource.get_metadata_schema()
     computed_schema = getattr(item_resource, 'computed_schema', {})
     if schema.has_key(column):
         datatype = schema[column]
         value = item_resource.get_property(column)
         if issubclass(datatype, Enumerate):
             return datatype.get_value(value)
         elif issubclass(datatype, Boolean):
             return bool_to_img(value)
         elif issubclass(datatype, DateTime):
             if value is None:
                 return u'-'
             accept = context.accept_language
             return format_datetime(value, accept)
         return value
     # Computed columns
     elif computed_schema.has_key(column):
         return getattr(item_resource, column)
     # Other column
     proxy = super(SearchTableFolder_View, self)
     return proxy.get_item_value(resource, context, item, column)
Example #7
0
 def get_record_namespace(self, context, record):
     get_value = self.handler.get_record_value
     namespace = {'id': record.id,
                  'complete_id': '%s-%s' % (self.parent.name, record.id),
                  'payment_mode': self.parent.name}
     # Base namespace
     for key in self.handler.record_properties.keys():
         namespace[key] = get_value(record, key)
     # Amount
     amount = get_value(record, 'amount')
     namespace['amount'] = format_price(amount)
     # User
     users = context.root.get_resource('users')
     username = get_value(record, 'user') or '0'
     user = users.get_resource(username)
     namespace['username'] = username
     namespace['user_title'] = user.get_title()
     namespace['user_email'] = user.get_property('email')
     # State
     namespace['advance_state'] = None
     # Timestamp
     accept = context.accept_language
     value = self.handler.get_record_value(record, 'ts')
     namespace['ts'] = format_datetime(value,  accept)
     return namespace
Example #8
0
 def get_item_value(self, resource, context, item, column):
     handler = resource.handler
     if column == 'user':
         user_name = handler.get_record_value(item, 'user')
         user = context.root.get_resource('users/%s' % user_name)
         return user.get_title(), '../%s' % user_name
     elif column == 'ts':
         ts = handler.get_record_value(item, 'ts')
         return format_datetime(ts, context.accept_language)
Example #9
0
 def get_namespace_messages(self, context):
     messages = []
     get_value = self.handler.get_record_value
     for record in self.handler.get_records():
         author = get_value(record, 'author')
         author = context.root.get_resource('/users/%s' % author)
         ts = get_value(record, 'ts')
         message = get_value(record, 'message').replace('\n', '<br/>')
         messages.append({'id': record.id,
                          'author': author.get_title(),
                          'message': XMLParser(message.encode('utf-8')),
                          'private': get_value(record, 'private'),
                          'seen': get_value(record, 'seen'),
                          'ts': format_datetime(ts, context.accept_language)})
     return messages
Example #10
0
 def get_record_namespace(self, context, record):
     namespace = {}
     # Id
     namespace['id'] = record.id
     namespace['shipping_mode'] = self.parent.get_title()
     # Complete id
     namespace['complete_id'] = '%s-%s' % (self.parent.name, record.id)
     # Base namespace
     for key in self.handler.record_properties.keys():
         namespace[key] = self.handler.get_record_value(record, key)
     # State
     namespace['state'] = ShippingStates.get_value(namespace['state'])
     # Timestamp
     accept = context.accept_language
     value = self.handler.get_record_value(record, 'ts')
     namespace['ts'] = format_datetime(value,  accept)
     return namespace
Example #11
0
 def get_item_value(self, resource, context, item, column):
     if column == 'numero':
         state = item.workflow_state
         href = './;order_view?id=%s' % item.name
         name = item.get_reference()
         return XMLParser(numero_template % (states_color[state], href, name))
     elif column == 'state':
         state = item.workflow_state
         state_title = states[state].gettext().encode('utf-8')
         href = './;order_view?id=%s' % item.name
         return XMLParser(numero_template % (states_color[state], href, state_title))
     elif column == 'total_price':
         price = item.get_property(column)
         return format_price(price)
     elif column == 'creation_datetime':
         value = item.get_property(column)
         accept = context.accept_language
         return format_datetime(value, accept=accept)
     return BrowseForm.get_item_value(self, resource, context, item, column)
Example #12
0
 def get_namespace(self, context):
     root = context.root
     # Get dynamic user values
     dynamic_user_value = ResourceDynamicProperty()
     dynamic_user_value.schema = self.get_dynamic_schema()
     dynamic_user_value.resource = self
     # Module
     shop_module = ModuleLoader()
     shop_module.context = context
     shop_module.here = self
     # Get modules items
     modules_items = []
     search = context.root.search(is_shop_user_module=True)
     for brain in search.get_documents():
         shop_user_module = root.get_resource(brain.abspath)
         modules_items.append({
             'name': shop_user_module.element_name,
             'title': shop_user_module.element_title,
             'href': shop_user_module.element_name,
             'img': shop_user_module.class_icon48
         })
     # Ctime
     ctime = self.get_property('ctime')
     accept = context.accept_language
     # ACLS
     ac = self.get_access_control()
     is_authenticated = ac.is_authenticated(context.user, self)
     is_owner = context.user is not None and context.user.name == self.name
     # Build namespace
     return {
         'name': self.name,
         'link': context.get_link(self),
         'module': shop_module,
         'dynamic_user_value': dynamic_user_value,
         'is_owner': is_owner,
         'is_authenticated': is_authenticated,
         'ctime':
         format_datetime(ctime, accept) if ctime else None,  # XXX Why ?
         'items': self.base_items + modules_items
     }
Example #13
0
 def set_value(self, resource, context, name, form):
     proxy = super(WikiPage_Edit, self)
     if name == 'data':
         proxy.set_value(resource, context, name, form)
         # Warn about syntax errors
         message = None
         try:
             html = resource.view.GET(resource, context)
         except SystemMessage, e:
             # Critical
             message = ERR_SYNTAX_ERROR(error=e.message)
         else:
             # Non-critical
             if 'class="system-message"' in html:
                 message = ERR_SYNTAX_WARNING
             else:
                 accept = context.accept_language
                 time = format_datetime(datetime.now(), accept=accept)
                 message = messages.MSG_CHANGES_SAVED2(time=time)
         # Keep it to override context.message later
         context.wiki_message = message
         # Save even if broken
         return False
Example #14
0
File: user.py Project: hforge/shop
 def get_namespace(self, context):
     root = context.root
     # Get dynamic user values
     dynamic_user_value = ResourceDynamicProperty()
     dynamic_user_value.schema = self.get_dynamic_schema()
     dynamic_user_value.resource = self
     # Module
     shop_module = ModuleLoader()
     shop_module.context = context
     shop_module.here = self
     # Get modules items
     modules_items = []
     search = context.root.search(is_shop_user_module=True)
     for brain in search.get_documents():
         shop_user_module = root.get_resource(brain.abspath)
         modules_items.append(
             {'name': shop_user_module.element_name,
              'title': shop_user_module.element_title,
              'href': shop_user_module.element_name,
              'img': shop_user_module.class_icon48})
     # Ctime
     ctime = self.get_property('ctime')
     accept = context.accept_language
     # ACLS
     ac = self.get_access_control()
     is_authenticated = ac.is_authenticated(context.user, self)
     is_owner = context.user is not None and context.user.name == self.name
     # Build namespace
     return {'name': self.name,
             'link': context.get_link(self),
             'module': shop_module,
             'dynamic_user_value': dynamic_user_value,
             'is_owner': is_owner,
             'is_authenticated': is_authenticated,
             'ctime': format_datetime(ctime, accept) if ctime else None, # XXX Why ?
             'items': self.base_items + modules_items}
Example #15
0
 def get_namespace(self, resource, context):
     # Get some resources
     shop = get_shop(resource)
     addresses = shop.get_resource('addresses').handler
     # Build namespace
     namespace = resource.get_namespace(context)
     for key in ['is_payed', 'is_sent']:
         namespace[key] = resource.get_property(key)
     # States
     namespace['is_canceled'] = resource.get_statename() == 'cancel'
     namespace['state'] = {'title': states[resource.workflow_state],
                           'color': states_color[resource.workflow_state]}
     namespace['transitions'] = SelectWidget('transition').to_html(Order_Transitions, None)
     # Bill
     has_bill = resource.get_resource('bill', soft=True) is not None
     namespace['has_bill'] = has_bill
     has_order = resource.get_resource('order', soft=True) is not None
     namespace['has_order'] = has_order
     # Order
     creation_datetime = resource.get_property('creation_datetime')
     namespace['order'] = {
       'id': resource.name,
       'date': format_datetime(creation_datetime, context.accept_language)}
     for key in ['shipping_price', 'total_price', 'total_weight']:
         namespace['order'][key] =resource.get_property(key)
     namespace['order']['shipping_way'] = ShippingWaysEnumerate.get_value(
                                     resource.get_property('shipping'))
     namespace['order']['payment_way'] = PaymentWaysEnumerate.get_value(
                                     resource.get_property('payment_mode'))
     # Delivery and shipping addresses
     get_address = addresses.get_record_namespace
     delivery_address = resource.get_property('delivery_address')
     bill_address = resource.get_property('bill_address')
     namespace['delivery_address'] = get_address(delivery_address)
     namespace['bill_address'] = get_address(bill_address)
     # Price
     for key in ['shipping_price', 'total_price']:
         price = resource.get_property(key)
         namespace[key] = format_price(price)
     # Messages
     messages = resource.get_resource('messages')
     namespace['messages'] = messages.get_namespace_messages(context)
     # Payments (We show last payment)
     namespace['payments'] = []
     payments = shop.get_resource('payments')
     for payment_way, payment_record in payments.get_payments_records(context, resource.name):
         payment_table = payment_way.get_resource('payments').handler
         # Get specific view (useless now ?)
         view = payment_way.order_edit_view
         view = view(
                 payment_way=payment_way,
                 payment_table=payment_table,
                 record=payment_record,
                 id_payment=payment_record.id)
         view = view.GET(resource, context)
         # Details
         details = []
         for name, datatype in payment_table.record_properties.items():
             if name in ('resource_validator', 'state', 'ref', 'user'):
                 continue
             value = payment_table.get_record_value(payment_record, name)
             if issubclass(datatype, Enumerate):
                 value = datatype.get_value(value)
             details.append({'title': getattr(datatype, 'title', name),
                             'value': value})
         # Is payed ?
         is_payed = payment_table.get_record_value(payment_record, 'state')
         # BUild namespace
         namespace['payments'].append({'is_payed': is_payed,
                                       'title': payment_way.get_title(),
                                       'details': details,
                                       'state': payment_table.get_record_value(payment_record, 'state'),
                                       'view': view})
     namespace['last_payment'] = namespace['payments'][0]
     namespace['payment_ways'] = SelectWidget('payment_way',
             has_empty_option=False).to_html(PaymentWaysEnumerate,
                                             resource.get_property('payment_way'))
     # Shippings
     is_sent = resource.get_property('is_sent')
     shippings = shop.get_resource('shippings')
     shipping_way = resource.get_property('shipping')
     if shipping_way == 'default':
         shippings_records = None
     else:
         shipping_way_resource = shop.get_resource('shippings/%s/' % shipping_way)
         shippings_records = shippings.get_shippings_records(context, resource.name)
     if is_sent:
         view = None
         if shippings_records:
             # We show last delivery
             last_delivery = shippings_records[0]
             edit_record_view = shipping_way_resource.order_edit_view
             view = edit_record_view.GET(resource, shipping_way_resource,
                           last_delivery, context)
     elif shippings_records is None and shipping_way == 'default':
         view = None
     else:
         # We have to add delivery
         add_record_view = shipping_way_resource.order_add_view
         if add_record_view:
             view = add_record_view.GET(shipping_way_resource, context)
         else:
             view = None
     namespace['shipping_ways'] = SelectWidget('shipping_way',
             has_empty_option=False).to_html(ShippingWaysEnumerate,
                                             shipping_way)
     namespace['shipping'] = {'is_sent': is_sent,
                              'view': view}
     return namespace
Example #16
0
 def get_pub_datetime_formatted(self, language=None):
     pub_datetime = self.get_pub_datetime()
     if pub_datetime is None:
         return None
     return format_datetime(self.get_pub_datetime())
Example #17
0
 def format_datetime(self, datetime, tz=None):
     datetime = self.fix_tzinfo(datetime, tz)
     # Ok
     return format_datetime(datetime, accept=self.accept_language)
Example #18
0
 def get_namespace(self, resource, context):
     # Get some resources
     shop = get_shop(resource)
     addresses = shop.get_resource('addresses').handler
     # Build namespace
     namespace = resource.get_namespace(context)
     for key in ['is_payed', 'is_sent']:
         namespace[key] = resource.get_property(key)
     # States
     namespace['is_canceled'] = resource.get_statename() == 'cancel'
     namespace['state'] = {
         'title': states[resource.workflow_state],
         'color': states_color[resource.workflow_state]
     }
     namespace['transitions'] = SelectWidget('transition').to_html(
         Order_Transitions, None)
     # Bill
     has_bill = resource.get_resource('bill', soft=True) is not None
     namespace['has_bill'] = has_bill
     has_order = resource.get_resource('order', soft=True) is not None
     namespace['has_order'] = has_order
     # Order
     creation_datetime = resource.get_property('creation_datetime')
     namespace['order'] = {
         'id': resource.name,
         'date': format_datetime(creation_datetime, context.accept_language)
     }
     for key in ['shipping_price', 'total_price', 'total_weight']:
         namespace['order'][key] = resource.get_property(key)
     namespace['order']['shipping_way'] = ShippingWaysEnumerate.get_value(
         resource.get_property('shipping'))
     namespace['order']['payment_way'] = PaymentWaysEnumerate.get_value(
         resource.get_property('payment_mode'))
     # Delivery and shipping addresses
     get_address = addresses.get_record_namespace
     delivery_address = resource.get_property('delivery_address')
     bill_address = resource.get_property('bill_address')
     namespace['delivery_address'] = get_address(delivery_address)
     namespace['bill_address'] = get_address(bill_address)
     # Price
     for key in ['shipping_price', 'total_price']:
         price = resource.get_property(key)
         namespace[key] = format_price(price)
     # Messages
     messages = resource.get_resource('messages')
     namespace['messages'] = messages.get_namespace_messages(context)
     # Payments (We show last payment)
     namespace['payments'] = []
     payments = shop.get_resource('payments')
     for payment_way, payment_record in payments.get_payments_records(
             context, resource.name):
         payment_table = payment_way.get_resource('payments').handler
         # Get specific view (useless now ?)
         view = payment_way.order_edit_view
         view = view(payment_way=payment_way,
                     payment_table=payment_table,
                     record=payment_record,
                     id_payment=payment_record.id)
         view = view.GET(resource, context)
         # Details
         details = []
         for name, datatype in payment_table.record_properties.items():
             if name in ('resource_validator', 'state', 'ref', 'user'):
                 continue
             value = payment_table.get_record_value(payment_record, name)
             if issubclass(datatype, Enumerate):
                 value = datatype.get_value(value)
             details.append({
                 'title': getattr(datatype, 'title', name),
                 'value': value
             })
         # Is payed ?
         is_payed = payment_table.get_record_value(payment_record, 'state')
         # BUild namespace
         namespace['payments'].append({
             'is_payed':
             is_payed,
             'title':
             payment_way.get_title(),
             'details':
             details,
             'state':
             payment_table.get_record_value(payment_record, 'state'),
             'view':
             view
         })
     namespace['last_payment'] = namespace['payments'][0]
     namespace['payment_ways'] = SelectWidget(
         'payment_way', has_empty_option=False).to_html(
             PaymentWaysEnumerate, resource.get_property('payment_way'))
     # Shippings
     is_sent = resource.get_property('is_sent')
     shippings = shop.get_resource('shippings')
     shipping_way = resource.get_property('shipping')
     if shipping_way == 'default':
         shippings_records = None
     else:
         shipping_way_resource = shop.get_resource('shippings/%s/' %
                                                   shipping_way)
         shippings_records = shippings.get_shippings_records(
             context, resource.name)
     if is_sent:
         view = None
         if shippings_records:
             # We show last delivery
             last_delivery = shippings_records[0]
             edit_record_view = shipping_way_resource.order_edit_view
             view = edit_record_view.GET(resource, shipping_way_resource,
                                         last_delivery, context)
     elif shippings_records is None and shipping_way == 'default':
         view = None
     else:
         # We have to add delivery
         add_record_view = shipping_way_resource.order_add_view
         if add_record_view:
             view = add_record_view.GET(shipping_way_resource, context)
         else:
             view = None
     namespace['shipping_ways'] = SelectWidget(
         'shipping_way',
         has_empty_option=False).to_html(ShippingWaysEnumerate,
                                         shipping_way)
     namespace['shipping'] = {'is_sent': is_sent, 'view': view}
     return namespace
Example #19
0
    def get_namespace(self, resource, context):
        root = context.root
        # Get user
        user = resource
        # Get user class
        shop = get_shop(resource)
        group = user.get_group(context)
        # Build namespace
        namespace = {}
        infos = []
        for key, title in [('gender', MSG(u'Gender')),
                           ('firstname', MSG(u'Firstname')),
                           ('lastname', MSG(u'Lastname')),
                           ('email', MSG(u'Email')),
                           ('user_language', MSG(u'User language')),
                           ('phone1', MSG(u'Phone1')),
                           ('phone2', MSG(u'Phone2'))]:
            infos.append({'title': title,
                          'value': user.get_property(key),
                          'public': True})
        # Is enabled ?
        value = bool_to_img(user.get_property('is_enabled'))
        infos.append({'title': MSG(u'Enabled ?'),
                      'value': value,
                      'public': True})
        # Group
        infos.append({'title': MSG(u'Group'),
                      'value': group.get_title(),
                      'public': True})
        # Schema
        schema = group.get_resource('schema').handler
        for record in schema.get_records():
            name = schema.get_record_value(record, 'name')
            title = schema.get_record_value(record, 'title')
            public = schema.get_record_value(record, 'is_public')
            infos.append({'title': title,
                          'value': user.get_property(name),
                          'public': public})
        namespace['infos'] = infos
        # Customer connections
        namespace['connections'] = []
        accept = context.accept_language
        connections = shop.get_resource('customers/authentification_logs').handler
        for record in connections.search(user=user.name):
            ts = connections.get_record_value(record, 'ts')
            dt = format_datetime(ts, accept)
            namespace['connections'].append(dt)
        namespace['connections'].sort(reverse=True)
        # Customer payments
        payments = shop.get_resource('payments')
        namespace['payments'] = payments.get_payments_informations(
                                    context, user=user.name)
        # Customer orders
        namespace['orders'] = []
        query = PhraseQuery('customer_id', user.name)
        results = root.search(query)
        nb_orders = 0
        for brain in results.get_documents():
            order = root.get_resource(brain.abspath)
            nb_orders += 1
            namespace['orders'].append(
                  {'id': brain.name,
                   'href': resource.get_pathto(order),
                   'amount': order.get_property('total_price')})
        namespace['nb_orders'] = nb_orders
        # Customer addresses
        namespace['addresses'] = []
        addresses = shop.get_resource('addresses').handler
        for record in addresses.search(user=user.name):
            namespace['addresses'].append(
                addresses.get_record_namespace(record.id))

        return namespace
Example #20
0
 def format_datetime(self, datetime, tz=None):
     datetime = self.fix_tzinfo(datetime, tz)
     # Ok
     return format_datetime(datetime, accept=self.accept_language)