Files
odoo_source/addons/website_slides/views/website_slides_templates_profile.xml
T
Florian Charlier e3389e392e [IMP] website_slides: Improve frontend UI
The layout of slides needs a little freshening-up.

### Comments and slides

* The ratings are only showed once, and only for "documentation" contents
* Indications of why the user cannot post a comment are added (signing up,
  Karma, commenting not allowed), and the portal template is not called if
  there is no comment and commenting is not allowed (for user or course).
  In addition, the "Comment" tab is never hidden anymore, to not hide
  the available/activate-able features.
* Detailed view statistics are now shown only to selected users.
* Slide public views represent views by the public and all users that
  are not members of the course.
* When channel/slide images are not set or inaccessible, a default image
  is used (instead of plain background or unauthorized requests).
* These images are now editable on frontend.
* The 'Additional Resources' subtitle is hidden from the detailed slide view
  for invite-only courses as nothing else was shown with it.

### Misc.

*  This commit also fixes the "unresponsive" `total_views` count after public
views, by manually incrementing it too. This is required because `public_views`
is directly updated via SQL query and does not trigger model _computes.

* We also adjusted the test in survey that used a public user while in all
cases users must be logged-in (and therefore get portal privileges) before
they can participate.

Task-2663320
Part of odoo/odoo#79615
2022-08-25 14:24:52 +02:00

65 lines
3.4 KiB
XML

<?xml version="1.0" ?>
<odoo><data>
<!--Private profile-->
<template id="private_profile" inherit_id="website_profile.private_profile">
<xpath expr="//div[@id='private_profile_return_link_container']" position="inside">
<t t-if="request.params.get('channel_id')">
<p><a t-attf-href="/slides/course-#{request.params.get('channel_id')}">Return to the course.</a></p>
</t>
</xpath>
</template>
<template id="user_profile_content" inherit_id="website_profile.user_profile_content">
<xpath expr="//div[@id='profile_about_badge']" position="before">
<t t-if="channel">
<div class="mb32">
<h5 class="border-bottom pb-1">Completed Courses</h5>
<t t-if="courses_completed" t-call="website_slides.display_course">
<t t-set="courses" t-value="courses_completed"></t>
</t>
<div t-else="" class="text-muted d-inline-block">No completed courses yet!</div>
<div class="text-end d-inline-block pull-right">
<a href="/slides/all" class="btn btn-link btn-sm"><i class="fa fa-arrow-right me-1"/>All Courses</a>
</div>
</div>
<div class="mb32">
<h5 class="border-bottom pb-1">Followed Courses</h5>
<t t-if="courses_ongoing" t-call="website_slides.display_course">
<t t-set="courses" t-value="courses_ongoing"></t>
</t>
<p t-else="" class="text-muted">No followed courses yet!</p>
</div>
</t>
</xpath>
</template>
<template id="display_course">
<div class="row">
<div class="col-12 col-lg-6" t-foreach="courses" t-as="course">
<div class="card mb-2">
<div class="card-body o_wprofile_slides_course_card_body p-0 d-flex"
t-attf-onclick="location.href='/slides/#{slug(course.channel_id)}';">
<div class="o_wslides_background_image ps-5 pe-4 rounded-start" t-attf-style="background-image: url(#{course.channel_id.website_background_image_url});"/>
<div class="p-2 w-100">
<h5 class="mt-0 mb-1" t-field="course.channel_id.name"/>
<div class="overflow-hidden mb-1" style="height:24px">
<t t-foreach="course.channel_id.tag_ids.filtered(lambda tag: tag.color)" t-as="tag">
<a t-att-href="'/slides/all/tag/%s' % slug(tag)" t-attf-class="badge o_wslides_channel_tag post_link #{'o_tag_color_'+str(tag.color)}" t-esc="tag.name"/>
</t>
</div>
<div class="d-flex align-items-center">
<div class="progress flex-grow-1" style="height:0.5em">
<div class="progress-bar bg-primary" t-att-style="'width: '+ str(course.completion)+'%'"/>
</div>
<small class="fw-bold ps-2"><span t-esc="course.completion"/> %</small>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
</data></odoo>