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
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})
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)
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)
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
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 })
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})
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 })
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)
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)