Esempio n. 1
0
    def profile_values(self, partner, own_profile=False, data=None):
        """
        Collect data to render in profile view

        :param browse_record partner
        :param dict data: raw POST data
        :return: dict of values to render
        """
        cr, uid, context, registry = request.cr, request.uid, request.context, request.registry
        title_pool = registry.get('res.partner.title')
        country_pool = registry.get('res.country')
        state_pool = registry.get('res.country.state')
        currency_pool = registry.get('res.currency')
        self.date_format = get_date_format(cr, uid, context=context)
        values = {
            'errors': {},
            'partner': partner,
            'partner_titles': title_pool.name_search(cr, uid, '', [], context=context),
            'countries': country_pool.name_search(cr, uid, '', [], context=context),
            'states': state_pool.name_search(cr, uid, '', [], context=context),
            'is_administrator': uid == SUPERUSER_ID,
            'currencies': currency_pool.name_search(cr, uid, '', [('wallet_currency','=',True)], context=context),
            'date_placeholder': self.date_format.replace('%d','DD').replace('%m','MM').replace('%Y','YYYY'),
            'last_exchanges': self.profile_last_exchanges(partner.id),
            'wants': self.profile_announcements(partner.id, 'want', own_profile),
            'offers': self.profile_announcements(partner.id, 'offer', own_profile),
            'membership': self.get_partner_membership(partner),
            'groups': self.profile_last_groups(partner.id),
        }
        if data:
            values['profile'] = self.profile_parse_data(data)
        else:
            values['profile'] = self.profile_parse_partner(partner)
        return values
Esempio n. 2
0
    def load_more(self, **kw):
        """ Display results after load more signal(only for ajax) 
        """
        cr, uid, context = request.cr, request.uid, request.context
        mp_announcement_pool = request.registry.get('marketplace.announcement')
        result = {'wants': [], 'offers': []}
        date_format = get_date_format(cr, uid, context)
        sql = self._build_query(
            dict([(k, v) for k, v in kw.iteritems()
                  if k in self.SEARCH_PARAMS]), date_format,
            kw.get('limit', self.QUERY_LIMIT), kw.get('offset'))
        cr.execute(sql[0], sql[1] or ())
        res_ids = [row[0] for row in cr.fetchall()]
        res_data = mp_announcement_pool.browse(cr,
                                               uid,
                                               res_ids,
                                               context=context)

        for item in res_data:
            if item.type == 'want':
                result['wants'].append(item)
            else:
                result['offers'].append(item)

        if kw.get('load_wants'):
            return request.render('website_marketplace.mp_search_wants',
                                  {'result': result})
        else:
            return request.render('website_marketplace.mp_search_offers',
                                  {'result': result})
Esempio n. 3
0
 def register_part2(self, **kw):
     cr, uid, context, registry = request.cr, request.uid, request.context, request.registry
     user_pool = registry.get('res.users')
     title_pool = registry.get('res.partner.title')
     country_pool = registry.get('res.country')
     state_pool = registry.get('res.country.state')
     product_pool = registry.get('product.product')
     currency_pool = registry.get('res.currency')
     partner = user_pool.browse(cr, uid, uid, context=context).partner_id
     self.date_format = get_date_format(cr, uid, context=context)
     values = {
         'errors': {},
         'partner':
         partner,
         'membership':
         self.get_partner_membership(partner),
         'images':
         self.profile_images(partner),
         'partner_titles':
         title_pool.name_search(cr, uid, '', [], context=context),
         'countries':
         country_pool.name_search(cr, uid, '', [], context=context),
         'memberships':
         product_pool.name_search(
             cr,
             uid,
             '', [('membership', '=', True),
                  ('membership_date_to', '>=', datetime.today())],
             context=context),
         'states':
         state_pool.name_search(cr, uid, '', [], context=context),
         'currencies':
         currency_pool.name_search(cr,
                                   uid,
                                   '', [('wallet_currency', '=', True)],
                                   context=context),
         'date_placeholder':
         self.date_format.replace('%d',
                                  'DD').replace('%m',
                                                'MM').replace('%Y', 'YYYY'),
     }
     if kw:
         values['profile'] = self.profile_parse_data(kw)
         values['errors'] = self.profile_form_validate(values['profile'])
         if not kw.get('agreement', False):
             values['errors']['agreement'] = _(
                 'Please read terms and make decision')
         if not values['errors']:
             self.profile_save(partner, values['profile'])
             request.session['profile_saved'] = True
             return request.redirect("/marketplace/profile/%s" % partner.id)
     else:
         values['profile'] = self.profile_parse_partner(partner)
     return request.website.render(
         "website_community_template.register_part_2", values)
Esempio n. 4
0
    def search_function(self, **kw):
        cr, uid, context = request.cr, request.uid, request.context
        mp_announcement_pool = request.registry.get('marketplace.announcement')
        category_pool = request.registry.get('marketplace.announcement.category')
        result = {'wants': [], 'offers': []}
        resultglobal = []
        date_format = get_date_format(cr, uid, context)
        post_params = dict([(k,v) for k,v in kw.iteritems() if k in self.SEARCH_PARAMS])
        # Search in child categories
        category_id = int(kw.get('category','0'))
        if category_id:
            post_params.update({
                'categories': category_pool.search(cr, uid, 
                    [('id','child_of',category_id)],context=context)
            })
        if kw.get('choix') == None:
            choix = kw.get('choix')
        else :
            choix = kw.get('choix')
        sql = self._build_query(post_params, date_format, kw.get('limit',self.QUERY_LIMIT), int(kw.get('page','1'))-1)
        
        cr.execute(sql[0], sql[1] or ())
        res_ids = [row[0] for row in cr.fetchall()]
        res_data = mp_announcement_pool.browse(cr, uid, res_ids, context=context)
        
        #select number both of wants and offers
        count_sql = self._build_query(post_params, date_format, False, False, True)
        cr.execute(count_sql[0], count_sql[1] or ())
        counts = cr.fetchall()
        if len(counts) > 1:
            count = max(counts[0][0], counts[1][0])
        else:
            count = counts[0][0]

        for item in res_data:
            if item.type == 'want':
                result['wants'].append(item)
            else:
                result['offers'].append(item)
            resultglobal.append(item)
        value = {
            'result': result,
            'page': int(kw.get('page', '1')),
            'page_count': count/self.QUERY_LIMIT + (1 if count%self.QUERY_LIMIT else 0),
            'next_url': self._get_url('next', int(kw.get('page', '1')), post_params),
            'prev_url': self._get_url('prev', int(kw.get('page', '1'))-1, post_params),
            'format_text': format_text,
            'resultglobal': resultglobal,
            'resultat_choix': choix
        }
        if kw.get('choix') == 'old':
            return http.request.website.render('website_marketplace.mp_single_item_parent', value)
        else :
            return http.request.website.render('website_marketplace.mp_four_item', value)
Esempio n. 5
0
    def profile_values(self, partner, own_profile=False, data=None):
        """
        Collect data to render in profile view

        :param browse_record partner
        :param dict data: raw POST data
        :return: dict of values to render
        """
        cr, uid, context, registry = request.cr, request.uid, request.context, request.registry
        title_pool = registry.get('res.partner.title')
        country_pool = registry.get('res.country')
        state_pool = registry.get('res.country.state')
        currency_pool = registry.get('res.currency')
        self.date_format = get_date_format(cr, uid, context=context)
        values = {
            'errors': {},
            'partner':
            partner,
            'partner_titles':
            title_pool.name_search(cr, uid, '', [], context=context),
            'countries':
            country_pool.name_search(cr, uid, '', [], context=context),
            'states':
            state_pool.name_search(cr, uid, '', [], context=context),
            'is_administrator':
            uid == SUPERUSER_ID,
            'currencies':
            currency_pool.name_search(cr,
                                      uid,
                                      '', [('wallet_currency', '=', True)],
                                      context=context),
            'date_placeholder':
            self.date_format.replace('%d',
                                     'DD').replace('%m',
                                                   'MM').replace('%Y', 'YYYY'),
            'last_exchanges':
            self.profile_last_exchanges(partner.id),
            'wants':
            self.profile_announcements(partner.id, 'want', own_profile),
            'offers':
            self.profile_announcements(partner.id, 'offer', own_profile),
            'membership':
            self.get_partner_membership(partner),
            'groups':
            self.profile_last_groups(partner.id),
        }
        if data:
            values['profile'] = self.profile_parse_data(data)
        else:
            values['profile'] = self.profile_parse_partner(partner)
        return values
Esempio n. 6
0
 def profile_view(self, partner=None):
     """
     Display profile view page
     """
     cr, uid, context, registry = request.cr, request.uid, request.context, request.registry
     user_pool = registry.get('res.users')
     user = user_pool.browse(cr, uid, uid, context=context)
     date_format = get_date_format(cr, uid, context=context)
     return request.website.render("website_membership_users.profile_view", {
         'partner': partner,
         'is_administrator': uid == SUPERUSER_ID,
         'images': self.profile_images(partner),
         'wants': self.profile_announcements(partner.id, 'want', user.partner_id.id == partner.id),
         'offers': self.profile_announcements(partner.id, 'offer', user.partner_id.id == partner.id),
         'format_text': format_text,
         'last_exchanges': self.profile_last_exchanges(partner.id),
         'birthdate': format_date(partner.birthdate, True) if partner.birthdate else '',
         'membership': self.get_partner_membership(partner),
         'groups': self.profile_last_groups(partner.id),
         'profile_saved': request.session.pop('profile_saved') if 'profile_saved' in request.session else False
     })
Esempio n. 7
0
    def load_more(self, **kw):
        """ Display results after load more signal(only for ajax) 
        """
        cr, uid, context = request.cr, request.uid, request.context
        mp_announcement_pool = request.registry.get('marketplace.announcement')
        result = {'wants': [], 'offers': []}
        date_format = get_date_format(cr, uid, context)
        sql = self._build_query(dict([(k,v) for k,v in kw.iteritems() if k in self.SEARCH_PARAMS]), 
            date_format, kw.get('limit',self.QUERY_LIMIT), kw.get('offset'))
        cr.execute(sql[0], sql[1] or ())
        res_ids = [row[0] for row in cr.fetchall()]
        res_data = mp_announcement_pool.browse(cr, uid, res_ids, context=context)

        for item in res_data:
            if item.type == 'want':
                result['wants'].append(item)
            else:
                result['offers'].append(item)

        if kw.get('load_wants'):
            return request.render('website_marketplace.mp_search_wants', {'result': result})
        else:
            return request.render('website_marketplace.mp_search_offers', {'result': result})
Esempio n. 8
0
 def profile_view(self, partner=None):
     """
     Display profile view page
     """
     cr, uid, context, registry = request.cr, request.uid, request.context, request.registry
     user_pool = registry.get('res.users')
     user = user_pool.browse(cr, uid, uid, context=context)
     date_format = get_date_format(cr, uid, context=context)
     return request.website.render(
         "website_membership_users.profile_view", {
             'partner':
             partner,
             'is_administrator':
             uid == SUPERUSER_ID,
             'images':
             self.profile_images(partner),
             'wants':
             self.profile_announcements(partner.id, 'want',
                                        user.partner_id.id == partner.id),
             'offers':
             self.profile_announcements(partner.id, 'offer',
                                        user.partner_id.id == partner.id),
             'format_text':
             format_text,
             'last_exchanges':
             self.profile_last_exchanges(partner.id),
             'birthdate':
             format_date(partner.birthdate, True)
             if partner.birthdate else '',
             'membership':
             self.get_partner_membership(partner),
             'groups':
             self.profile_last_groups(partner.id),
             'profile_saved':
             request.session.pop('profile_saved')
             if 'profile_saved' in request.session else False
         })
Esempio n. 9
0
 def register_part2(self, **kw):
     cr, uid, context, registry = request.cr, request.uid, request.context, request.registry
     user_pool = registry.get('res.users')
     title_pool = registry.get('res.partner.title')
     country_pool = registry.get('res.country')
     state_pool = registry.get('res.country.state')
     product_pool = registry.get('product.product')
     currency_pool = registry.get('res.currency')
     partner = user_pool.browse(cr, uid, uid, context=context).partner_id
     self.date_format = get_date_format(cr, uid, context=context)
     values = {
         'errors': {},
         'partner': partner,
         'membership': self.get_partner_membership(partner),
         'images': self.profile_images(partner),
         'partner_titles': title_pool.name_search(cr, uid, '', [], context=context),
         'countries': country_pool.name_search(cr, uid, '', [], context=context),
         'memberships': product_pool.name_search(cr, uid, '',[
             ('membership', '=', True),
             ('membership_date_to', '>=', datetime.today())], context=context),
         'states': state_pool.name_search(cr, uid, '', [], context=context),
         'currencies': currency_pool.name_search(cr, uid, '', [('wallet_currency','=',True)], context=context),
         'date_placeholder': self.date_format.replace('%d','DD').replace('%m','MM').replace('%Y','YYYY'),
     }
     if kw:
         values['profile'] = self.profile_parse_data(kw)
         values['errors'] = self.profile_form_validate(values['profile'])
         if not kw.get('agreement', False):
             values['errors']['agreement'] = _('Please read terms and make decision')
         if not values['errors']:
             self.profile_save(partner, values['profile'])
             request.session['profile_saved'] = True
             return request.redirect("/marketplace/profile/%s" % partner.id)
     else:
         values['profile'] = self.profile_parse_partner(partner)
     return request.website.render("website_community_template.register_part_2", values)
Esempio n. 10
0
    def search_function(self, **kw):
        cr, uid, context = request.cr, request.uid, request.context
        mp_announcement_pool = request.registry.get('marketplace.announcement')
        category_pool = request.registry.get(
            'marketplace.announcement.category')
        result = {'wants': [], 'offers': []}
        resultglobal = []
        date_format = get_date_format(cr, uid, context)
        post_params = dict([(k, v) for k, v in kw.iteritems()
                            if k in self.SEARCH_PARAMS])
        # Search in child categories
        category_id = int(kw.get('category', '0'))
        if category_id:
            post_params.update({
                'categories':
                category_pool.search(cr,
                                     uid, [('id', 'child_of', category_id)],
                                     context=context)
            })
        if kw.get('choix') == None:
            choix = kw.get('choix')
        else:
            choix = kw.get('choix')
        sql = self._build_query(post_params, date_format,
                                kw.get('limit', self.QUERY_LIMIT),
                                int(kw.get('page', '1')) - 1)

        cr.execute(sql[0], sql[1] or ())
        res_ids = [row[0] for row in cr.fetchall()]
        res_data = mp_announcement_pool.browse(cr,
                                               uid,
                                               res_ids,
                                               context=context)

        #select number both of wants and offers
        count_sql = self._build_query(post_params, date_format, False, False,
                                      True)
        cr.execute(count_sql[0], count_sql[1] or ())
        counts = cr.fetchall()
        if len(counts) > 1:
            count = max(counts[0][0], counts[1][0])
        else:
            count = counts[0][0]

        for item in res_data:
            if item.type == 'want':
                result['wants'].append(item)
            else:
                result['offers'].append(item)
            resultglobal.append(item)
        value = {
            'result':
            result,
            'page':
            int(kw.get('page', '1')),
            'page_count':
            count / self.QUERY_LIMIT + (1 if count % self.QUERY_LIMIT else 0),
            'next_url':
            self._get_url('next', int(kw.get('page', '1')), post_params),
            'prev_url':
            self._get_url('prev',
                          int(kw.get('page', '1')) - 1, post_params),
            'format_text':
            format_text,
            'resultglobal':
            resultglobal,
            'resultat_choix':
            choix
        }
        if kw.get('choix') == 'old':
            return http.request.website.render(
                'website_marketplace.mp_single_item_parent', value)
        else:
            return http.request.website.render(
                'website_marketplace.mp_four_item', value)