User = request.registry['res.users']
step = 30
- tag_count = User.search(cr, SUPERUSER_ID, [('karma', '>', 1)], count=True, context=context)
+ tag_count = User.search(cr, SUPERUSER_ID, [('karma', '>', 1), ('website_published', '=', True)], count=True, context=context)
pager = request.website.pager(url="/forum/%s/users" % slug(forum), total=tag_count, page=page, step=step, scope=30)
- obj_ids = User.search(cr, SUPERUSER_ID, [('karma', '>', 1)], limit=step, offset=pager['offset'], order='karma DESC', context=context)
+ obj_ids = User.search(cr, SUPERUSER_ID, [('karma', '>', 1), ('website_published', '=', True)], limit=step, offset=pager['offset'], order='karma DESC', context=context)
# put the users in block of 3 to display them as a table
users = [[] for i in range(len(obj_ids)/3+1)]
for index, user in enumerate(User.browse(cr, SUPERUSER_ID, obj_ids, context=context)):
Data = request.registry["ir.model.data"]
user = User.browse(cr, SUPERUSER_ID, user_id, context=context)
- if not user.exists() or (user_id != request.session.uid and user.karma < 1):
- return werkzeug.utils.redirect("/forum/%s" % slug(forum))
-
+ values = self._prepare_forum_values(forum=forum, **post)
+ if not user.exists() or (user_id != request.session.uid and (not user.website_published or user.karma < 1)):
+ return request.website.render("website_forum.private_profile", values)
# questions and answers by user
user_questions, user_answers = [], []
user_post_ids = Post.search(
post['users'] = 'True'
- values = self._prepare_forum_values(**post)
values.update({
'uid': uid,
'user': user,
'main_object': user,
'searches': post,
- 'forum': forum,
'questions': user_questions,
'answers': user_answers,
'followed': followed,
</t>
</template>
+<!--Private profile-->
+<template id="private_profile">
+ <t t-call="website_forum.header">
+ <h1 class="mt32">This profile is private!</h1>
+ <p>
+ <a t-attf-href="/forum/#{slug(forum)}">Return to the question list.</a>
+ </p>
+ </t>
+</template>
+
<template id="edit_profile">
<t t-call="website_forum.header">
- <h3>Edit Profile </h3>
- <div class="col-md-2">
- <img class="img img-responsive img-circle" t-attf-src="/forum/user/#{user.id}/avatar"/>
+ <h3>Edit Profile
+ <t t-call="website.publish_management">
+ <t t-set="object" t-value="user"/>
+ </t>
+ </h3>
+ <div class="col-md-2">
+ <img class="img img-responsive img-circle" t-attf-src="/forum/user/#{user.id}/avatar"/>
+ </div>
+ <form t-attf-action="/forum/#{slug(forum)}/user/#{slug(user)}/save" method="post" role="form" class="form-horizontal">
+ <input name="user_id" t-att-value="user.id" type="hidden"/>
+ <label class="col-md-2 control-label mb16" for="user.name">Real name</label>
+ <div class="col-md-7 mb16">
+ <input type="text" class="col-md-7 mb16 form-control" name="name" required="True" t-attf-value="#{user.name}"/>
+ </div>
+ <label class="col-md-2 control-label mb16" for="user.partner_id.website">Website</label>
+ <div class="col-md-7 mb16">
+ <input type="text" class="form-control" name="website" t-attf-value="#{user.partner_id.website or ''}"/>
</div>
- <form t-attf-action="/forum/#{slug(forum)}/user/#{slug(user)}/save" method="post" role="form" class="form-horizontal">
- <input name="user_id" t-att-value="user.id" type="hidden"/>
- <label class="col-md-2 control-label mb16" for="user.name">Real name</label>
- <div class="col-md-7 mb16">
- <input type="text" class="col-md-7 mb16 form-control" name="name" required="True" t-attf-value="#{user.name}"/>
- </div>
- <label class="col-md-2 control-label mb16" for="user.partner_id.website">Website</label>
- <div class="col-md-7 mb16">
- <input type="text" class="form-control" name="website" t-attf-value="#{user.partner_id.website or ''}"/>
- </div>
- <label class="col-md-4 control-label mb16" for="user.partner_id.email">Email</label>
- <div class="col-md-7 mb16">
- <input type="text" class="form-control" name="email" required="True" t-attf-value="#{user.partner_id.email}"/>
- </div>
- <label class="col-md-4 control-label mb16" for="user.partner_id.city">City</label>
- <div class="col-md-7 mb16">
- <input type="text" class="form-control" name="city" t-attf-value="#{user.partner_id.city or ''}"/>
- </div>
- <label class="col-md-4 control-label mb16" for="contact_name">Country</label>
- <div class="col-md-7 mb16">
- <select class="form-control" name="country">
- <option value="">Country...</option>
- <t t-foreach="countries or []" t-as="country">
- <option t-att-value="country.id" t-att-selected="country.id == user.partner_id.country_id.id"><t t-esc="country.name"/></option>
- </t>
- </select>
- </div>
- <!--Note: using website_description fiels instead of using commnt firld of partner-->
- <label class="col-md-4 control-label mb16" for="user.partner_id.website_description">Biography</label>
- <div class="col-md-7 mb16">
- <textarea name="description" style="min-height: 120px" required="True"
- class="form-control"><t t-esc="user.partner_id.website_description"/></textarea>
- </div>
- <div class="col-sm-offset-4 col-md-4 mb16">
- <button class="btn btn-primary btn-lg">Update</button>
- </div>
- </form>
+ <label class="col-md-4 control-label mb16" for="user.partner_id.email">Email</label>
+ <div class="col-md-7 mb16">
+ <input type="text" class="form-control" name="email" required="True" t-attf-value="#{user.partner_id.email}"/>
+ </div>
+ <label class="col-md-4 control-label mb16" for="user.partner_id.city">City</label>
+ <div class="col-md-7 mb16">
+ <input type="text" class="form-control" name="city" t-attf-value="#{user.partner_id.city or ''}"/>
+ </div>
+ <label class="col-md-4 control-label mb16" for="contact_name">Country</label>
+ <div class="col-md-7 mb16">
+ <select class="form-control" name="country">
+ <option value="">Country...</option>
+ <t t-foreach="countries or []" t-as="country">
+ <option t-att-value="country.id" t-att-selected="country.id == user.partner_id.country_id.id"><t t-esc="country.name"/></option>
+ </t>
+ </select>
+ </div>
+ <!--Note: using website_description fiels instead of using commnt firld of partner-->
+ <label class="col-md-4 control-label mb16" for="user.partner_id.website_description">Biography</label>
+ <div class="col-md-7 mb16">
+ <textarea name="description" style="min-height: 120px" required="True"
+ class="form-control"><t t-esc="user.partner_id.website_description"/></textarea>
+ </div>
+ <div class="col-sm-offset-4 col-md-4 mb16">
+ <button class="btn btn-primary btn-lg">Update</button>
+ </div>
+ </form>
</t>
</template>
<h1 class="mt0 page-header">
<span t-field="user.name"/>
<small>profile</small>
+ <t t-call="website.publish_management" groups="base.group_website_publisher">
+ <t t-set="object" t-value="user"/>
+ </t>
</h1>
<div class="row">
<div class="col-sm-2">