[IMP] *: correctly read/write website_published
The `website_published` field from the website's mixins is basically a readonly
from `is_published` field.
On read, this field will simply read `is_published` and check if the record's
website_id is accessible (only for the multi mixin).
On write, it will always write on `is_published`.
Whenever possible, any access (read/search) on published state should be done on `website_published`.
Any write should be done on `is_published`.
This PR improves a few things:
- A lot of code was writting on website_published which was just then writting
on is_published. Writting directly on is_published makes more sense.
- Some backend fields would still reference `website_published` instead of
`is_published` which would just go through the related for no reason.
Plus, using `is_published` will make the field tooltip more accurate as we
are not in a website context ('Visible on current website' to 'Is Published')
- Filter and search on tree view were still using the `website_published`
related field, which is just a readonly when we are not in a frontend
context.
- Some create and write function would have security check on
`website_published` value but that was wrong as the user could bypass that by
simply writting on `is_published`. For the write method, check `is_published`
is more accurate as it will cover both case since `website_published` will
then call the write method on `is_published`
- Some models would create their own `website_published` field rather than using the
`website.published.mixin` mixin which should be used instead.
That was done to be able to override the default value of the boolean.
This commit simply adds the possibility to override the default value of the
mixin field.
- Fix wrong publish security check that were only checking `website_published` in vals.
closes odoo/odoo#35189
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
This commit is contained in:
@@ -69,7 +69,7 @@
|
||||
</field>
|
||||
</record>
|
||||
<record id="test_page" model="website.page">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
<field name="url">/test_page_view</field>
|
||||
<field name="view_id" ref="test_page_view"/>
|
||||
</record>
|
||||
|
||||
@@ -117,17 +117,17 @@
|
||||
|
||||
<data noupdate="1">
|
||||
<record id="homepage_page" model="website.page">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
<field name="url">/</field>
|
||||
<field name="view_id" ref="homepage"/>
|
||||
</record>
|
||||
<record id="contactus_page" model="website.page">
|
||||
<field name="url">/contactus</field>
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
<field name="view_id" ref="contactus"/>
|
||||
</record>
|
||||
<record id="aboutus_page" model="website.page">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
<field name="url">/aboutus</field>
|
||||
<field name="view_id" ref="aboutus"/>
|
||||
</record>
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
<!-- Showcase all (most?) BS components and utilities -->
|
||||
<record id="bs_debug_page" model="website.page">
|
||||
<field name="url">/website/demo/bootstrap</field>
|
||||
<field name="website_published">False</field>
|
||||
<field name="is_published">False</field>
|
||||
<field name="view_id" ref="bs_debug_view"/>
|
||||
</record>
|
||||
|
||||
@@ -311,7 +311,7 @@
|
||||
<!-- Showcase all snippets -->
|
||||
<record id="snippets_debug_page" model="website.page">
|
||||
<field name="url">/website/demo/snippets</field>
|
||||
<field name="website_published">False</field>
|
||||
<field name="is_published">False</field>
|
||||
<field name="view_id" ref="snippets_debug_view"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
@@ -119,14 +119,17 @@ class WebsitePublishedMixin(models.AbstractModel):
|
||||
_description = 'Website Published Mixin'
|
||||
|
||||
website_published = fields.Boolean('Visible on current website', related='is_published', readonly=False)
|
||||
is_published = fields.Boolean('Is published', copy=False)
|
||||
can_publish = fields.Boolean('Can publish', compute='_compute_can_publish')
|
||||
is_published = fields.Boolean('Is Published', copy=False, default=lambda self: self._default_is_published())
|
||||
can_publish = fields.Boolean('Can Publish', compute='_compute_can_publish')
|
||||
website_url = fields.Char('Website URL', compute='_compute_website_url', help='The full URL to access the document through the website.')
|
||||
|
||||
def _compute_website_url(self):
|
||||
for record in self:
|
||||
record.website_url = '#'
|
||||
|
||||
def _default_is_published(self):
|
||||
return False
|
||||
|
||||
def website_publish_button(self):
|
||||
self.ensure_one()
|
||||
if self.env.user.has_group('website.group_website_publisher') and self.website_url != '#':
|
||||
@@ -146,15 +149,16 @@ class WebsitePublishedMixin(models.AbstractModel):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
records = super(WebsitePublishedMixin, self).create(vals_list)
|
||||
|
||||
is_publish_modified = any('website_published' in values for values in vals_list)
|
||||
is_publish_modified = any(
|
||||
[set(v.keys()) & {'is_published', 'website_published'} for v in vals_list]
|
||||
)
|
||||
if is_publish_modified and not all(record.can_publish for record in records):
|
||||
raise AccessError(self._get_can_publish_error_message())
|
||||
|
||||
return records
|
||||
|
||||
def write(self, values):
|
||||
if 'website_published' in values and not all(record.can_publish for record in self):
|
||||
if 'is_published' in values and not all(record.can_publish for record in self):
|
||||
raise AccessError(self._get_can_publish_error_message())
|
||||
|
||||
return super(WebsitePublishedMixin, self).write(values)
|
||||
|
||||
@@ -197,11 +197,11 @@ class Crawler(HttpCase):
|
||||
generic_page = Page.create({
|
||||
'view_id': base_view.id,
|
||||
'url': '/page_1',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
})
|
||||
|
||||
specific_page = generic_page.copy({'website_id': self.env['website'].get_current_website().id})
|
||||
specific_page.write({'website_published': False, 'arch': generic_page.arch.replace('I am a generic page', 'I am a specific page')})
|
||||
specific_page.write({'is_published': False, 'arch': generic_page.arch.replace('I am a generic page', 'I am a specific page')})
|
||||
|
||||
r = self.url_open(specific_page.url)
|
||||
self.assertEqual(r.status_code, 404, "Restricted users should see a 404 and not the generic one as we unpublished the specific one")
|
||||
|
||||
@@ -145,12 +145,11 @@
|
||||
<field name="name"/>
|
||||
<field name="url"/>
|
||||
<field name="view_id" context="{'display_website': True}"/>
|
||||
<field name="is_published" groups="base.group_no_one"/>
|
||||
<field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="website_indexed"/>
|
||||
<field name="website_published"/>
|
||||
<field name="is_published"/>
|
||||
<field name="date_publish"/>
|
||||
</group>
|
||||
</group>
|
||||
@@ -170,7 +169,7 @@
|
||||
<field name="url"/>
|
||||
<field name="website_id" groups="website.group_multi_website"/>
|
||||
<field name="website_indexed"/>
|
||||
<field name="website_published" string="Page Published"/>
|
||||
<field name="is_published" string="Page Published"/>
|
||||
<field name="create_uid" invisible="1"/>
|
||||
<field name="write_uid"/>
|
||||
<field name="write_date"/>
|
||||
|
||||
@@ -286,7 +286,7 @@ class WebsiteBlog(http.Controller):
|
||||
|
||||
new_blog_post = request.env['blog.post'].create({
|
||||
'blog_id': blog_id,
|
||||
'website_published': False,
|
||||
'is_published': False,
|
||||
})
|
||||
return werkzeug.utils.redirect("/blog/%s/post/%s?enable_editor=1" % (slug(new_blog_post.blog_id), slug(new_blog_post)))
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<field name="subtitle">Ideas behind the Odoo communication tools.</field>
|
||||
<field name="blog_id" ref="blog_blog_1"/>
|
||||
<field name="tag_ids" eval="[(6, 0, [ref('blog_tag_1')])]"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="published_date" eval="time.strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="website_meta_keywords">Odoo, email</field>
|
||||
<field name="website_meta_description">Ideas behind the Odoo communication tools.</field>
|
||||
@@ -130,7 +130,7 @@
|
||||
<field name="name">Integrating your CMS and E-Commerce</field>
|
||||
<field name="subtitle">Building your company's website and selling your products online easy.</field>
|
||||
<field name="blog_id" ref="blog_blog_1"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="published_date" eval="time.strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="tag_ids" eval="[(6, 0, [ref('blog_tag_1'), ref('blog_tag_2')])]"/>
|
||||
<field name="cover_properties">{"background-image": "url(/web/image/website_blog.blog_post_cover_02)", "resize_class": "cover container-fluid cover_full", "background-color": "oe_black", "opacity": "0.0"}</field>
|
||||
|
||||
@@ -194,7 +194,7 @@ class BlogPost(models.Model):
|
||||
blog_post._write(dict(post_date=blog_post.create_date)) # dont trigger inverse function
|
||||
|
||||
def _check_for_publication(self, vals):
|
||||
if vals.get('website_published'):
|
||||
if vals.get('is_published'):
|
||||
for post in self:
|
||||
post.blog_id.message_post_with_view(
|
||||
'website_blog.blog_post_template_new_post',
|
||||
@@ -214,9 +214,10 @@ class BlogPost(models.Model):
|
||||
result = True
|
||||
for post in self:
|
||||
copy_vals = dict(vals)
|
||||
if ('website_published' in vals and 'published_date' not in vals and
|
||||
published_in_vals = set(vals.keys()) & {'is_published', 'website_published'}
|
||||
if (published_in_vals and 'published_date' not in vals and
|
||||
(not post.published_date or post.published_date <= fields.Datetime.now())):
|
||||
copy_vals['published_date'] = vals['website_published'] and fields.Datetime.now() or False
|
||||
copy_vals['published_date'] = vals[list(published_in_vals)[0]] and fields.Datetime.now() or False
|
||||
result &= super(BlogPost, self).write(copy_vals)
|
||||
self._check_for_publication(vals)
|
||||
return result
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="website_crm_partner_assign.res_partner_grade_platinium" model="res.partner.grade">
|
||||
<field name="website_published" eval="True" />
|
||||
<field name="is_published" eval="True" />
|
||||
</record>
|
||||
<record id="website_crm_partner_assign.res_partner_grade_gold" model="res.partner.grade">
|
||||
<field name="website_published" eval="True" />
|
||||
<field name="is_published" eval="True" />
|
||||
</record>
|
||||
<record id="website_crm_partner_assign.res_partner_grade_silver" model="res.partner.grade">
|
||||
<field name="website_published" eval="True" />
|
||||
<field name="is_published" eval="True" />
|
||||
</record>
|
||||
<record id="website_crm_partner_assign.res_partner_grade_bronze" model="res.partner.grade">
|
||||
<field name="website_published" eval="True" />
|
||||
<field name="is_published" eval="True" />
|
||||
</record>
|
||||
<record id="base.partner_demo_portal" model="res.partner">
|
||||
<field name="grade_id" ref="website_crm_partner_assign.res_partner_grade_platinium"/>
|
||||
|
||||
@@ -10,7 +10,6 @@ class ResPartnerGrade(models.Model):
|
||||
_inherit = ['website.published.mixin']
|
||||
_description = 'Partner Grade'
|
||||
|
||||
website_published = fields.Boolean(default=True)
|
||||
sequence = fields.Integer('Sequence')
|
||||
active = fields.Boolean('Active', default=lambda *args: 1)
|
||||
name = fields.Char('Level Name', translate=True)
|
||||
@@ -22,6 +21,9 @@ class ResPartnerGrade(models.Model):
|
||||
for grade in self:
|
||||
grade.website_url = "/partners/grade/%s" % (slug(grade))
|
||||
|
||||
def _default_is_published(self):
|
||||
return True
|
||||
|
||||
|
||||
class ResPartnerActivation(models.Model):
|
||||
_name = 'res.partner.activation'
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="base.res_partner_2" model="res.partner">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="website_short_description">Deco Addict designs, develops, integrates and supports HR and Supply Chain processes in order to make our customers more productive, responsive and profitable.</field>
|
||||
<field name="website_description" type="xml">
|
||||
<p>
|
||||
@@ -33,7 +33,7 @@
|
||||
</field>
|
||||
</record>
|
||||
<record id="base.res_partner_3" model="res.partner">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="website_short_description">A non-profit international educational and scientific organisation, hosting three departments (aeronautics and aerospace, environmental and applied fluid dynamics, and turbomachinery and propulsion).</field>
|
||||
<field name="website_description" type="xml">
|
||||
<p>
|
||||
@@ -61,7 +61,7 @@
|
||||
</field>
|
||||
</record>
|
||||
<record id="base.res_partner_4" model="res.partner">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="website_short_description">Deco Addict designs, develops, integrates and supports HR and Supply Chain processes in order to make our customers more productive, responsive and profitable.</field>
|
||||
<field name="website_description" type="xml">
|
||||
<p>
|
||||
@@ -91,7 +91,7 @@
|
||||
</field>
|
||||
</record>
|
||||
<record id="base.res_partner_3" model="res.partner">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="website_short_description">A non-profit international educational and scientific organisation, hosting three departments (aeronautics and aerospace, environmental and applied fluid dynamics, and turbomachinery and propulsion).</field>
|
||||
<field name="website_description" type="xml">
|
||||
<p>
|
||||
|
||||
@@ -26,4 +26,6 @@ class Tags(models.Model):
|
||||
partner_ids = fields.Many2many('res.partner', 'res_partner_res_partner_tag_rel', 'tag_id', 'partner_id', string='Partners')
|
||||
classname = fields.Selection(get_selection_class, 'Class', default='default', help="Bootstrap class to customize the color", required=True)
|
||||
active = fields.Boolean('Active', default=True)
|
||||
website_published = fields.Boolean(default=True)
|
||||
|
||||
def _default_is_published(self):
|
||||
return True
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<group col="4">
|
||||
<field name="name"/>
|
||||
<field name="classname"/>
|
||||
<field name="website_published"/>
|
||||
<field name="is_published"/>
|
||||
<field name="active"/>
|
||||
</group>
|
||||
</sheet>
|
||||
@@ -37,7 +37,7 @@
|
||||
<tree string="Website Tags" editable="bottom">
|
||||
<field name="name"/>
|
||||
<field name="classname"/>
|
||||
<field name="website_published"/>
|
||||
<field name="is_published"/>
|
||||
<field name="active" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
<odoo>
|
||||
|
||||
<record id="base.res_partner_1" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="event.event_0" model="event.event">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
<field name="twitter_hashtag">odoo</field>
|
||||
<field name="description"><![CDATA[
|
||||
<section class="s_cover parallax s_parallax_is_fixed pt96 pb96" data-scroll-background-ratio="1">
|
||||
@@ -168,21 +168,21 @@
|
||||
]]></field> </record>
|
||||
|
||||
<record id="base.res_partner_3" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_4" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
<record id="event.event_2" model="event.event">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
<field name="twitter_hashtag">odoo</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_2" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
<record id="base.res_partner_address_4" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
</record>
|
||||
<record id="event_track1" model="event.track">
|
||||
<field name="name">How to design a new piece of furniture</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 06:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location5"/>
|
||||
@@ -101,7 +101,7 @@
|
||||
</record>
|
||||
<record id="event_track2" model="event.track">
|
||||
<field name="name">How to integrate hardware materials in your pieces of furniture</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 8:30:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location5"/>
|
||||
@@ -113,7 +113,7 @@
|
||||
</record>
|
||||
<record id="event_track3" model="event.track">
|
||||
<field name="name">Portfolio presentation</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 10:30:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location5"/>
|
||||
@@ -124,7 +124,7 @@
|
||||
</record>
|
||||
<record id="event_track4" model="event.track">
|
||||
<field name="name">How to develop automated processes</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 9:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location5"/>
|
||||
@@ -135,7 +135,7 @@
|
||||
</record>
|
||||
<record id="event_track5" model="event.track">
|
||||
<field name="name">The new way to promote your creations</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 6:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location6"/>
|
||||
@@ -146,7 +146,7 @@
|
||||
</record>
|
||||
<record id="event_track6" model="event.track">
|
||||
<field name="name">Detailed roadmap of our new products</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 6:30:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location6"/>
|
||||
@@ -157,7 +157,7 @@
|
||||
</record>
|
||||
<record id="event_track7" model="event.track">
|
||||
<field name="name">A technical explanation of how to use computer design apps</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 8:30:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location6"/>
|
||||
@@ -168,7 +168,7 @@
|
||||
</record>
|
||||
<record id="event_track8" model="event.track">
|
||||
<field name="name">How to optimize your sales, from leads to sales orders</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 6:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location7"/>
|
||||
@@ -181,7 +181,7 @@
|
||||
</record>
|
||||
<record id="event_track9" model="event.track">
|
||||
<field name="name">How to improve your quality processes</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="user_id" ref="base.user_admin"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 8:30:00')"></field>
|
||||
@@ -194,7 +194,7 @@
|
||||
</record>
|
||||
<record id="event_track10" model="event.track">
|
||||
<field name="name">Raising qualitive insights from your customers</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 6:30:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location7"/>
|
||||
@@ -205,7 +205,7 @@
|
||||
</record>
|
||||
<record id="event_track11" model="event.track">
|
||||
<field name="name">Discover our new design team</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 10:30:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location7"/>
|
||||
@@ -216,7 +216,7 @@
|
||||
</record>
|
||||
<record id="event_track12" model="event.track">
|
||||
<field name="name">Latest trends</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 11:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location7"/>
|
||||
@@ -227,7 +227,7 @@
|
||||
</record>
|
||||
<record id="event_track13" model="event.track">
|
||||
<field name="name">Advanced reporting</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 6:30:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location8"/>
|
||||
@@ -238,7 +238,7 @@
|
||||
</record>
|
||||
<record id="event_track14" model="event.track">
|
||||
<field name="name">Partnership programs</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 7:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location8"/>
|
||||
@@ -249,7 +249,7 @@
|
||||
</record>
|
||||
<record id="event_track15" model="event.track">
|
||||
<field name="name">How to communicate with your community</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 10:30:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location8"/>
|
||||
@@ -260,7 +260,7 @@
|
||||
</record>
|
||||
<record id="event_track16" model="event.track">
|
||||
<field name="name">How to follow us on the social media</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 11:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location8"/>
|
||||
@@ -271,7 +271,7 @@
|
||||
</record>
|
||||
<record id="event_track17" model="event.track">
|
||||
<field name="name">The new marketing strategy</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 6:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location9"/>
|
||||
@@ -282,7 +282,7 @@
|
||||
</record>
|
||||
<record id="event_track18" model="event.track">
|
||||
<field name="name">How to build your marketing strategy within a competitive environment</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 8:30:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location9"/>
|
||||
@@ -294,7 +294,7 @@
|
||||
</record>
|
||||
<record id="event_track19" model="event.track">
|
||||
<field name="name">Advanced lead management : tips and tricks from the fields</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 9:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location9"/>
|
||||
@@ -306,7 +306,7 @@
|
||||
</record>
|
||||
<record id="event_track20" model="event.track">
|
||||
<field name="name">New Certification Program</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 10:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location9"/>
|
||||
@@ -317,7 +317,7 @@
|
||||
</record>
|
||||
<record id="event_track21" model="event.track">
|
||||
<field name="name">House of World Cultures</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 10:30:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location9"/>
|
||||
@@ -328,7 +328,7 @@
|
||||
</record>
|
||||
<record id="event_track22" model="event.track">
|
||||
<field name="name">Minimal but efficient design</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 11:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location9"/>
|
||||
@@ -339,7 +339,7 @@
|
||||
</record>
|
||||
<record id="event_track23" model="event.track">
|
||||
<field name="name">Key Success factors selling our furniture</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 7:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location9"/>
|
||||
@@ -350,7 +350,7 @@
|
||||
</record>
|
||||
<record id="event_track24" model="event.track">
|
||||
<field name="name">Design contest (entire day)</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 6:00:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location10"/>
|
||||
@@ -361,7 +361,7 @@
|
||||
</record>
|
||||
<record id="event_track25" model="event.track">
|
||||
<field name="name">Design contest (entire afternoon)</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 8:30:00')"></field>
|
||||
<field name="location_id" ref="website_event_track.event_track_location10"/>
|
||||
@@ -372,7 +372,7 @@
|
||||
</record>
|
||||
<record id="event_track27" model="event.track">
|
||||
<field name="name">My Company global presentation</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 04:00:00')"></field>
|
||||
<field name="duration" eval="1"/>
|
||||
@@ -383,7 +383,7 @@
|
||||
</record>
|
||||
<record id="event_track28" model="event.track">
|
||||
<field name="name">Status & Strategy</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 5:00:00')"></field>
|
||||
<field name="duration" eval="0.5"/>
|
||||
@@ -393,7 +393,7 @@
|
||||
</record>
|
||||
<record id="event_track29" model="event.track">
|
||||
<field name="name">The new marketing strategy</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 5:30:00')"></field>
|
||||
<field name="duration" eval="0.25"/>
|
||||
@@ -404,7 +404,7 @@
|
||||
</record>
|
||||
<record id="event_track30" model="event.track">
|
||||
<field name="name">Morning break</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 5:45:00')"></field>
|
||||
<field name="duration" eval="0.25"/>
|
||||
@@ -413,7 +413,7 @@
|
||||
</record>
|
||||
<record id="event_track31" model="event.track">
|
||||
<field name="name">Lunch</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="date" eval="time.strftime(str(DateTime.today().year) + '-06-04 7:30:00')"></field>
|
||||
<field name="duration" eval="1"/>
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<field name="name">Thanks (Contact us)</field>
|
||||
<field name="type">qweb</field>
|
||||
<field name="url">/contactus-thank-you</field>
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
<field name="key">website_form.contactus_thanks</field>
|
||||
<field name="arch" type="xml">
|
||||
<t name="Thanks (Contact us)" t-name="website_form.contactus_thanks">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<odoo>
|
||||
|
||||
<record id="hr.job_marketing" model="hr.job">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
<field name="website_description" type="html">
|
||||
<section class="mt16 mb16 oe_dark">
|
||||
<div class="container">
|
||||
@@ -134,7 +134,7 @@
|
||||
</record>
|
||||
|
||||
<record id="hr.job_developer" model="hr.job">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
<field name="website_description" type="html">
|
||||
<section class="mt16 mb16 oe_dark">
|
||||
<div class="container">
|
||||
@@ -267,7 +267,7 @@
|
||||
</record>
|
||||
|
||||
<record id="hr.job_consultant" model="hr.job">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
<field name="website_description" type="html">
|
||||
<section class="mt16 mb16 oe_dark">
|
||||
<div class="container">
|
||||
|
||||
@@ -398,7 +398,7 @@
|
||||
|
||||
<record id="thankyou" model="website.page">
|
||||
<field name="url">/job-thank-you</field>
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
<field name="name">Thank you (Recruitment)</field>
|
||||
<field name="type">qweb</field>
|
||||
<field name="key">website_hr_recruitment.thankyou</field>
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
|
||||
<data noupdate="1">
|
||||
<record id="base.res_partner_12" model="res.partner">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="base.res_partner_2" model="res.partner">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="base.main_partner" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
</odoo>
|
||||
</odoo>
|
||||
|
||||
@@ -2,53 +2,53 @@
|
||||
<odoo>
|
||||
|
||||
<record id="base.partner_admin" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
<record id="base.partner_demo" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
<record id="base.partner_demo_portal" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_12" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_12" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_2" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_1" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_12" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_3" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_3" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_2" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_18" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_10" model="res.partner">
|
||||
<field name="website_published">True</field>
|
||||
<field name="is_published">True</field>
|
||||
</record>
|
||||
|
||||
<record id="base.res_partner_12" model="res.partner">
|
||||
|
||||
@@ -7,6 +7,4 @@ class Rating(models.Model):
|
||||
_inherit = 'rating.rating'
|
||||
|
||||
# Add this related field to mail.message for performance reason
|
||||
# This field may one day be deplaced to another module (like 'website_rating') if it is required for
|
||||
# another usage not related to website_sale.
|
||||
website_published = fields.Boolean(related='message_id.website_published', store=True, readonly=False)
|
||||
|
||||
@@ -6,56 +6,56 @@
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_24" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_product_5" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_product_12" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_product_10" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_product_13" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_product_25" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.consu_delivery_02" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_delivery_01" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_product_3" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_product_22" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.consu_delivery_03" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_product_27" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_delivery_02" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_product_16" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.consu_delivery_01" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_order_01" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_4" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="website_size_x">2</field>
|
||||
<field name="website_size_y">2</field>
|
||||
<field name="website_sequence">9950</field>
|
||||
@@ -63,25 +63,25 @@
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_6" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="website_sequence">10010</field>
|
||||
<field name="website_style_ids" eval="[(6,0,[ref('website_sale.image_full')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_7" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_8" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_9" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_11" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="accessory_product_ids" eval="[(6, 0, [ref('product.product_product_7')])]"/>
|
||||
</record>
|
||||
|
||||
@@ -636,7 +636,7 @@
|
||||
<field name="name">Warranty</field>
|
||||
<field name="list_price">20.0</field>
|
||||
<field name="website_sequence">9980</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="type">service</field>
|
||||
<field name="uom_id" ref="uom.product_uom_unit"/>
|
||||
<field name="uom_po_id" ref="uom.product_uom_unit"/>
|
||||
|
||||
@@ -11,7 +11,7 @@ class TestUi(odoo.tests.HttpCase):
|
||||
# create a template
|
||||
product_template = self.env['product.template'].create({
|
||||
'name': 'Test Product',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
'list_price': 750,
|
||||
})
|
||||
|
||||
@@ -147,7 +147,7 @@ class TestUi(odoo.tests.HttpCase):
|
||||
# create the template
|
||||
product_template = self.env['product.template'].create({
|
||||
'name': 'Test Product 2',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
})
|
||||
|
||||
# set attribute and attribute values on the template
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//filter[@name='consumable']" position="after">
|
||||
<separator/>
|
||||
<filter string="Published" name="published" domain="[('website_published', '=', True)]"/>
|
||||
<filter string="Published" name="published" domain="[('is_published', '=', True)]"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="delivery.free_delivery_carrier" model="delivery.carrier">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="delivery.delivery_carrier" model="delivery.carrier">
|
||||
<field name="website_published" eval="False" />
|
||||
<field name="is_published" eval="False" />
|
||||
</record>
|
||||
|
||||
<record id="delivery.normal_delivery_carrier" model="delivery.carrier">
|
||||
<field name="website_published" eval="False" />
|
||||
<field name="is_published" eval="False" />
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<field name="inherit_id" ref="delivery.view_delivery_carrier_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="delivery_type" position="after">
|
||||
<field name="website_published"/>
|
||||
<field name="is_published"/>
|
||||
<field name="website_id" groups="website.group_multi_website"/>
|
||||
</field>
|
||||
</field>
|
||||
@@ -40,7 +40,7 @@
|
||||
<field name="inherit_id" ref="delivery.view_delivery_carrier_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<filter name="inactive" position="after">
|
||||
<filter string="Published" name="website_published" domain="[('website_published','=',True)]"/>
|
||||
<filter string="Published" name="is_published" domain="[('is_published','=',True)]"/>
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<field name="standard_price">2</field>
|
||||
<field name="list_price">4.50</field>
|
||||
<field name="type">service</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="image_1920" type="base64" file="website_sale_digital/static/digital_product_1.jpg"/>
|
||||
<field name="categ_id" ref="product.product_category_6"/>
|
||||
</record>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<odoo noupdate="1">
|
||||
<record id="sale_product_configurator.product_product_1_product_template" model="product.template">
|
||||
<field name="website_sequence">9980</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.product_product_4_product_template" model="product.template">
|
||||
<field name="optional_product_ids" eval="[(6,0,[ref('product.product_product_11_product_template'), ref('website_sale.product_product_1_product_template')])]"/>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<field name="standard_price">100.0</field>
|
||||
<field name="list_price">100.0</field>
|
||||
<field name="type">service</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="image_1920" type="base64" file="website_sale_slides/static/img/product_course.png"/>
|
||||
</record>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<field name="standard_price">12.0</field>
|
||||
<field name="list_price">12.0</field>
|
||||
<field name="type">consu</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="image_1920" type="base64" file="website_sale_slides/static/img/water_can.jpg"/>
|
||||
</record>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<field name="standard_price">4.5</field>
|
||||
<field name="list_price">4.5</field>
|
||||
<field name="type">consu</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="image_1920" type="base64" file="website_sale_slides/static/img/flower_pot.jpg"/>
|
||||
</record>
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<field name="standard_price">150.0</field>
|
||||
<field name="list_price">150.0</field>
|
||||
<field name="type">service</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="image_1920" type="base64" file="website_sale_slides/static/img/channel_demo_tree_1.jpg"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<record id="stock.product_cable_management_box" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="stock.product_cable_management_box_product_template" model="product.template">
|
||||
<field name="public_categ_ids" eval="[(6,0,[ref('website_sale.public_category_boxes')])]"/>
|
||||
|
||||
@@ -820,7 +820,7 @@ class WebsiteSlides(WebsiteProfile):
|
||||
|
||||
try:
|
||||
values['user_id'] = request.env.uid
|
||||
values['website_published'] = values.get('website_published', False) and can_publish
|
||||
values['is_published'] = values.get('is_published', False) and can_publish
|
||||
slide = request.env['slide.slide'].sudo().create(values)
|
||||
except (UserError, AccessError) as e:
|
||||
_logger.error(e)
|
||||
@@ -836,17 +836,17 @@ class WebsiteSlides(WebsiteProfile):
|
||||
redirect_url += "?enable_editor=1"
|
||||
if slide.slide_type == "quiz":
|
||||
action_id = request.env.ref('website_slides.action_slides_slides').id
|
||||
redirect_url = '/web#id=%s&action=%s&model=slide.slide&view_type=form' %(slide.id,action_id)
|
||||
redirect_url = '/web#id=%s&action=%s&model=slide.slide&view_type=form' % (slide.id, action_id)
|
||||
return {
|
||||
'url': redirect_url,
|
||||
'channel_type': channel.channel_type,
|
||||
'slide_id': slide.id,
|
||||
'category_id': slide.category_id
|
||||
}
|
||||
}
|
||||
|
||||
def _get_valid_slide_post_values(self):
|
||||
return ['name', 'url', 'tag_ids', 'slide_type', 'channel_id', 'is_preview',
|
||||
'mime_type', 'datas', 'description', 'image_1920', 'index_content', 'website_published']
|
||||
'mime_type', 'datas', 'description', 'image_1920', 'index_content', 'is_published']
|
||||
|
||||
@http.route(['/slides/tag/search_read'], type='json', auth='user', methods=['POST'], website=True)
|
||||
def slide_tag_search_read(self, fields, domain):
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<field name="name">Get started</field>
|
||||
<field name="description">Register to the platform</field>
|
||||
<field name="image_1920" type="base64" file="website_slides/static/src/img/standard_badge_bronze.svg"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="level">bronze</field>
|
||||
<field name="rule_auth">nobody</field>
|
||||
</record>
|
||||
@@ -47,7 +47,7 @@
|
||||
<field name="name">Know yourself</field>
|
||||
<field name="description">Complete your profile</field>
|
||||
<field name="image_1920" type="base64" file="website_slides/static/src/img/standard_badge_bronze.svg"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="level">bronze</field>
|
||||
<field name="rule_auth">nobody</field>
|
||||
</record>
|
||||
@@ -89,7 +89,7 @@
|
||||
<field name="name">Power User</field>
|
||||
<field name="description">Complete a course</field>
|
||||
<field name="image_1920" type="base64" file="website_slides/static/src/img/standard_badge_silver.svg"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="level">silver</field>
|
||||
<field name="rule_auth">nobody</field>
|
||||
</record>
|
||||
@@ -129,7 +129,7 @@
|
||||
<field name="name">Certified Knowledge</field>
|
||||
<field name="description">Get a certification</field>
|
||||
<field name="image_1920" type="base64" file="website_slides/static/src/img/standard_badge_gold.svg"/>
|
||||
<field name="website_published" eval="False"/>
|
||||
<field name="is_published" eval="False"/>
|
||||
<field name="level">gold</field>
|
||||
<field name="rule_auth">nobody</field>
|
||||
</record>
|
||||
@@ -170,7 +170,7 @@
|
||||
<field name="name">Community hero</field>
|
||||
<field name="description">Reach 2000 XP</field>
|
||||
<field name="image_1920" type="base64" file="website_slides/static/src/img/standard_badge_gold.svg"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="level">gold</field>
|
||||
<field name="rule_auth">nobody</field>
|
||||
</record>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<field name="channel_type">training</field>
|
||||
<field name="allow_comment" eval="True"/>
|
||||
<field name="promote_strategy">latest</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="tag_ids" eval="[(5, 0),
|
||||
(4, ref('website_slides.slide_channel_tag_level_intermediate')),
|
||||
(4, ref('website_slides.slide_channel_tag_role_gardener')),
|
||||
@@ -48,7 +48,7 @@
|
||||
<field name="channel_type">documentation</field>
|
||||
<field name="allow_comment" eval="True"/>
|
||||
<field name="promote_strategy">most_viewed</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="tag_ids" eval="[(5, 0),
|
||||
(4, ref('website_slides.slide_channel_tag_level_intermediate')),
|
||||
(4, ref('website_slides.slide_channel_tag_role_gardener')),
|
||||
@@ -76,7 +76,7 @@
|
||||
<field name="channel_type">training</field>
|
||||
<field name="allow_comment" eval="True"/>
|
||||
<field name="promote_strategy">latest</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="tag_ids" eval="[(5, 0),
|
||||
(4, ref('website_slides.slide_channel_tag_level_intermediate')),
|
||||
(4, ref('website_slides.slide_channel_tag_role_gardener')),
|
||||
@@ -100,7 +100,7 @@ will learn the basics of wood characteristics.</field>
|
||||
<field name="channel_type">documentation</field>
|
||||
<field name="allow_comment" eval="True"/>
|
||||
<field name="promote_strategy">most_voted</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="tag_ids" eval="[(5, 0),
|
||||
(4, ref('website_slides.slide_channel_tag_level_basic')),
|
||||
(4, ref('website_slides.slide_channel_tag_role_furniture'))]"/>
|
||||
@@ -120,7 +120,7 @@ will learn the basics of wood characteristics.</field>
|
||||
<field name="channel_type">training</field>
|
||||
<field name="allow_comment" eval="True"/>
|
||||
<field name="promote_strategy">latest</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="tag_ids" eval="[(5, 0),
|
||||
(4, ref('website_slides.slide_channel_tag_level_intermediate')),
|
||||
(4, ref('website_slides.slide_channel_tag_role_furniture')),
|
||||
@@ -153,7 +153,7 @@ will learn the basics of wood characteristics.</field>
|
||||
<field name="channel_type">training</field>
|
||||
<field name="allow_comment" eval="True"/>
|
||||
<field name="promote_strategy">most_voted</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="tag_ids" eval="[(5, 0),
|
||||
(4, ref('website_slides.slide_channel_tag_level_advanced')),
|
||||
(4, ref('website_slides.slide_channel_tag_role_carpenter')),
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<odoo><data noupdate="1">
|
||||
<record id="slide_channel_tag_group_level" model="slide.channel.tag.group">
|
||||
<field name="name">Your Level</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="slide_channel_tag_level_basic" model="slide.channel.tag">
|
||||
<field name="name">Basic</field>
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
<record id="slide_channel_tag_group_role" model="slide.channel.tag.group">
|
||||
<field name="name">Your Role</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="slide_channel_tag_role_gardener" model="slide.channel.tag">
|
||||
<field name="name">Gardener</field>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<record model="slide.channel" id="channel_public">
|
||||
<field name="name">Our documentation</field>
|
||||
<field name="promote_strategy">most_viewed</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="enroll">public</field>
|
||||
<field name="description">Public access to presentations and documentation.</field>
|
||||
</record>
|
||||
@@ -12,7 +12,7 @@
|
||||
<record id="slide_channel_tag_group_data_other" model="slide.channel.tag.group">
|
||||
<field name="name">Tags</field>
|
||||
<field name="sequence">20</field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<field name="slide_type">presentation</field>
|
||||
<field name="channel_id" ref="website_slides.channel_public"/>
|
||||
<field name="category_id" eval="False"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="True"/>
|
||||
<field name="public_views">10</field>
|
||||
<field name="completion_time">2.5</field>
|
||||
@@ -25,7 +25,7 @@
|
||||
<field name="slide_type">infographic</field>
|
||||
<field name="channel_id" ref="website_slides.channel_public"/>
|
||||
<field name="category_id" eval="False"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="False"/>
|
||||
<field name="public_views">5</field>
|
||||
<field name="completion_time">1</field>
|
||||
@@ -42,7 +42,7 @@
|
||||
<field name="slide_type">infographic</field>
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_1_gard1"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_1_0"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="True"/>
|
||||
<field name="public_views">5</field>
|
||||
<field name="completion_time">0.5</field>
|
||||
@@ -56,7 +56,7 @@
|
||||
<field name="slide_type">infographic</field>
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_1_gard1"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_1_0"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="False"/>
|
||||
<field name="public_views">5</field>
|
||||
<field name="completion_time">1.5</field>
|
||||
@@ -70,7 +70,7 @@
|
||||
<field name="slide_type">infographic</field>
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_1_gard1"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_1_0"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="False"/>
|
||||
<field name="public_views">10</field>
|
||||
<field name="completion_time">1</field>
|
||||
@@ -96,7 +96,7 @@
|
||||
<field name="slide_type">video</field>
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_1_gard1"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_1_1"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="False"/>
|
||||
<field name="public_views">0</field>
|
||||
<field name="completion_time">1</field>
|
||||
@@ -145,7 +145,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section></field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="True"/>
|
||||
<field name="public_views">5</field>
|
||||
<field name="completion_time">1</field>
|
||||
@@ -203,7 +203,7 @@
|
||||
<field name="slide_type">presentation</field>
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_1_gard1"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_1_1"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="False"/>
|
||||
<field name="public_views">10</field>
|
||||
<field name="completion_time">2.5</field>
|
||||
@@ -221,7 +221,7 @@
|
||||
<field name="slide_type">presentation</field>
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_2_gard2"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_2_0"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="True"/>
|
||||
<field name="public_views">0</field>
|
||||
<field name="completion_time">1</field>
|
||||
@@ -317,7 +317,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section></field>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="False"/>
|
||||
<field name="public_views">0</field>
|
||||
<field name="completion_time">2</field>
|
||||
@@ -332,7 +332,7 @@
|
||||
<field name="slide_type">video</field>
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_2_gard2"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_2_0"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="False"/>
|
||||
<field name="public_views">0</field>
|
||||
<field name="completion_time">1</field>
|
||||
@@ -350,7 +350,7 @@
|
||||
<field name="slide_type">presentation</field>
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_5_furn2"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_5_0"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="True"/>
|
||||
<field name="public_views">10</field>
|
||||
<field name="completion_time">2.5</field>
|
||||
@@ -377,7 +377,7 @@
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_5_furn2"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_5_1"/>
|
||||
<field name="category_id" eval="False"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="False"/>
|
||||
<field name="public_views">0</field>
|
||||
<field name="completion_time">1</field>
|
||||
@@ -393,7 +393,7 @@
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_5_furn2"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_5_1"/>
|
||||
<field name="category_id" eval="False"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="True"/>
|
||||
<field name="public_views">5</field>
|
||||
<field name="completion_time">3</field>
|
||||
@@ -403,10 +403,10 @@
|
||||
<field name="name">Test your knowledge !</field>
|
||||
<field name="sequence">4</field>
|
||||
<field name="image_1920" type="base64" file="website_slides/static/src/img/slide_demo_owl.jpg"/>
|
||||
<field name="slide_type">quiz</field>
|
||||
<field name="slide_type">quiz</field>
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_5_furn2"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_5_0"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="False"/>
|
||||
<field name="public_views">0</field>
|
||||
<field name="completion_time">0.5</field>
|
||||
|
||||
@@ -200,7 +200,7 @@ class Channel(models.Model):
|
||||
def _compute_slides_statistics(self):
|
||||
result = dict((cid, dict(total_views=0, total_votes=0, total_time=0)) for cid in self.ids)
|
||||
read_group_res = self.env['slide.slide'].read_group(
|
||||
[('is_published', '=', True),('channel_id', 'in', self.ids)],
|
||||
[('website_published', '=', True), ('channel_id', 'in', self.ids)],
|
||||
['channel_id', 'slide_type', 'likes', 'dislikes', 'total_views', 'completion_time'],
|
||||
groupby=['channel_id', 'slide_type'],
|
||||
lazy=False)
|
||||
@@ -534,7 +534,7 @@ class Category(models.Model):
|
||||
def _count_presentations(self):
|
||||
result = dict.fromkeys(self.ids, dict())
|
||||
res = self.env['slide.slide'].read_group(
|
||||
[('is_published', '=', True), ('category_id', 'in', self.ids)],
|
||||
[('website_published', '=', True), ('category_id', 'in', self.ids)],
|
||||
['category_id', 'slide_type'], ['category_id', 'slide_type'],
|
||||
lazy=False)
|
||||
|
||||
|
||||
@@ -7,14 +7,15 @@ from odoo import fields, models
|
||||
class SlideChannelTagGroup(models.Model):
|
||||
_name = 'slide.channel.tag.group'
|
||||
_description = 'Channel/Course tags'
|
||||
_inherit = 'website.published.mixin'
|
||||
_order = 'sequence asc'
|
||||
|
||||
name = fields.Char('Name', required=True, translate=True)
|
||||
sequence = fields.Integer('Sequence', default=10, index=True, required=True)
|
||||
tag_ids = fields.One2many('slide.channel.tag', 'group_id', string='Tags')
|
||||
website_published = fields.Boolean(
|
||||
'Menu entry', default=True,
|
||||
help='Makes a menu entry in main navigation of Slides, allowing to filter on its tags directly from main navigation.')
|
||||
|
||||
def _default_is_published(self):
|
||||
return True
|
||||
|
||||
|
||||
class SlideChannelTag(models.Model):
|
||||
|
||||
@@ -289,7 +289,7 @@ class Slide(models.Model):
|
||||
values['index_content'] = values.get('description')
|
||||
if values.get('slide_type') == 'infographic' and not values.get('image_1920'):
|
||||
values['image_1920'] = values['datas']
|
||||
if values.get('website_published') and not values.get('date_published'):
|
||||
if values.get('is_published') and not values.get('date_published'):
|
||||
values['date_published'] = datetime.datetime.now()
|
||||
if values.get('url') and not values.get('document_id'):
|
||||
doc_data = self._parse_document_url(values['url']).get('values', dict())
|
||||
@@ -298,7 +298,7 @@ class Slide(models.Model):
|
||||
|
||||
slide = super(Slide, self).create(values)
|
||||
|
||||
if slide.website_published:
|
||||
if slide.is_published:
|
||||
slide._post_publication()
|
||||
return slide
|
||||
|
||||
@@ -309,7 +309,7 @@ class Slide(models.Model):
|
||||
values.setdefault(key, value)
|
||||
|
||||
res = super(Slide, self).write(values)
|
||||
if values.get('website_published'):
|
||||
if values.get('is_published'):
|
||||
self.date_published = datetime.datetime.now()
|
||||
self._post_publication()
|
||||
return res
|
||||
|
||||
@@ -131,7 +131,7 @@ var SlideUploadDialog = Dialog.extend({
|
||||
'description': this._formGetFieldValue('description'),
|
||||
'index_content': this._formGetFieldValue('index_content'),
|
||||
'is_preview': this.$('#is_preview').is(':checked'),
|
||||
'website_published': forcePublished,
|
||||
'is_published': forcePublished,
|
||||
}, this._getSelect2DropdownValues()); // add tags and category
|
||||
|
||||
// default slide_type (for webpage for instance)
|
||||
|
||||
@@ -45,7 +45,7 @@ class SlidesCase(common.SavepointCase):
|
||||
'promote_strategy': 'most_voted',
|
||||
'enroll': 'public',
|
||||
'visibility': 'public',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
'karma_gen_channel_finish': 100,
|
||||
'karma_gen_slide_vote': 5,
|
||||
'karma_gen_channel_rank': 10,
|
||||
@@ -54,7 +54,7 @@ class SlidesCase(common.SavepointCase):
|
||||
'name': 'How To Cook Humans',
|
||||
'channel_id': self.channel.id,
|
||||
'slide_type': 'presentation',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
'completion_time': 2.0,
|
||||
})
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ class TestKarmaGain(common.SlidesCase):
|
||||
'promote_strategy': 'most_voted',
|
||||
'enroll': 'public',
|
||||
'visibility': 'public',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
'karma_gen_channel_finish': 100,
|
||||
'karma_gen_slide_vote': 5,
|
||||
'karma_gen_channel_rank': 10,
|
||||
@@ -29,14 +29,14 @@ class TestKarmaGain(common.SlidesCase):
|
||||
'name': 'How to travel through space and time',
|
||||
'channel_id': self.channel_2.id,
|
||||
'slide_type': 'presentation',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
'completion_time': 2.0,
|
||||
})
|
||||
self.slide_2_1 = self.env['slide.slide'].with_user(self.user_publisher).create({
|
||||
'name': 'How to duplicate yourself',
|
||||
'channel_id': self.channel_2.id,
|
||||
'slide_type': 'presentation',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
'completion_time': 2.0,
|
||||
})
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ class TestAccess(common.SlidesCase):
|
||||
@mute_logger('odoo.models', 'odoo.addons.base.models.ir_rule')
|
||||
def test_access_channel_publish(self):
|
||||
""" Unpublished channels and their content are visible only to website people """
|
||||
self.channel.write({'website_published': False, 'enroll': 'public'})
|
||||
self.channel.write({'is_published': False, 'enroll': 'public'})
|
||||
|
||||
# channel available only to website
|
||||
self.channel.with_user(self.user_publisher).read(['name'])
|
||||
@@ -97,10 +97,10 @@ class TestAccess(common.SlidesCase):
|
||||
self.slide.with_user(self.user_emp).read(['name'])
|
||||
|
||||
# publish channel but content unpublished (even if can be previewed) still unavailable
|
||||
self.channel.write({'website_published': True})
|
||||
self.channel.write({'is_published': True})
|
||||
self.slide.write({
|
||||
'is_preview': True,
|
||||
'website_published': False,
|
||||
'is_published': False,
|
||||
})
|
||||
|
||||
self.slide.with_user(self.user_publisher).read(['name'])
|
||||
@@ -134,7 +134,7 @@ class TestAccessFeatures(common.SlidesCase):
|
||||
channel = self.env['slide.channel'].create({
|
||||
'name': 'Test',
|
||||
'enroll': 'invite',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
'enroll_group_ids': [(4, self.ref('base.group_user'))]
|
||||
})
|
||||
|
||||
|
||||
@@ -21,14 +21,14 @@ class TestStatistics(common.SlidesCase):
|
||||
'name': 'How To Cook For Humans',
|
||||
'channel_id': self.channel.id,
|
||||
'slide_type': 'presentation',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
'completion_time': 3.0,
|
||||
})
|
||||
self.slide_3 = self.env['slide.slide'].with_user(self.user_publisher).create({
|
||||
'name': 'How To Cook Humans For Humans',
|
||||
'channel_id': self.channel.id,
|
||||
'slide_type': 'document',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
'completion_time': 1.5,
|
||||
})
|
||||
|
||||
|
||||
@@ -63,9 +63,14 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Channel Tag Group">
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button class="oe_stat_button" name="website_publish_button"
|
||||
type="object" icon="fa-globe">
|
||||
<field name="is_published" widget="website_button" help="Makes a menu entry in main navigation of Slides, allowing to filter on its tags directly from main navigation."/>
|
||||
</button>
|
||||
</div>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="website_published"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
@@ -79,7 +84,7 @@
|
||||
<tree string="Channel Tag Groups">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="website_published"/>
|
||||
<field name="is_published" string="Menu Entry"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -186,8 +186,8 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Slides">
|
||||
<field name="name"/>
|
||||
<filter name="published" string="Published" domain="[('website_published', '=', True)]"/>
|
||||
<filter name="not_published" string="Waiting for validation" domain="[('website_published', '=', False)]"/>
|
||||
<filter name="published" string="Published" domain="[('is_published', '=', True)]"/>
|
||||
<filter name="not_published" string="Waiting for validation" domain="[('is_published', '=', False)]"/>
|
||||
<separator/>
|
||||
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
|
||||
<group expand="0" string="Group By">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo><data noupdate="0">
|
||||
<record id="website_slides.badge_data_certification" model="gamification.badge">
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="website_slides.badge_data_certification_goal" model="gamification.goal.definition">
|
||||
<field name="domain">[
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_5_furn2"/>
|
||||
<field name="category_id" ref="website_slides.slide_category_demo_5_0"/>
|
||||
<field name="survey_id" ref="website_slides_survey.furniture_certification"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="False"/>
|
||||
<field name="description">Now that you have completed the course, it's time to test your knowledge!</field>
|
||||
</record>
|
||||
@@ -26,7 +26,7 @@
|
||||
<field name="channel_id" ref="website_slides.slide_channel_demo_6_furn3"/>
|
||||
<field name="category_id" eval="False"/>
|
||||
<field name="survey_id" ref="website_slides_survey.furniture_certification"/>
|
||||
<field name="website_published" eval="True"/>
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="is_preview" eval="False"/>
|
||||
<field name="description">It's time to test your knowledge!</field>
|
||||
</record>
|
||||
|
||||
@@ -45,7 +45,7 @@ class TestCourseCertificationFailureFlow(SurveyCase):
|
||||
'channel_type': 'training',
|
||||
'enroll': 'public',
|
||||
'visibility': 'public',
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
})
|
||||
|
||||
# Step 2: link the certification to a slide of type 'certification'
|
||||
@@ -54,7 +54,7 @@ class TestCourseCertificationFailureFlow(SurveyCase):
|
||||
'channel_id': self.channel.id,
|
||||
'slide_type': 'certification',
|
||||
'survey_id': certification.id,
|
||||
'website_published': True,
|
||||
'is_published': True,
|
||||
})
|
||||
# Step 3: add public user as member of the channel
|
||||
self.channel._action_add_members(self.user_public.partner_id)
|
||||
|
||||
@@ -35,7 +35,7 @@ diff --git a/academy/demo.xml b/academy/demo.xml
|
||||
+ <field name="name">Course 0</field>
|
||||
+ <field name="teacher_id" ref="padilla"/>
|
||||
+ <field name="public_categ_ids" eval="[(4, ref('academy.category_courses'), False)]"/>
|
||||
+ <field name="website_published">True</field>
|
||||
+ <field name="is_published">True</field>
|
||||
+ <field name="list_price" type="float">0</field>
|
||||
+ <field name="type">service</field>
|
||||
+ </record>
|
||||
@@ -43,7 +43,7 @@ diff --git a/academy/demo.xml b/academy/demo.xml
|
||||
+ <field name="name">Course 1</field>
|
||||
+ <field name="teacher_id" ref="padilla"/>
|
||||
+ <field name="public_categ_ids" eval="[(4, ref('academy.category_courses'), False)]"/>
|
||||
+ <field name="website_published">True</field>
|
||||
+ <field name="is_published">True</field>
|
||||
+ <field name="list_price" type="float">0</field>
|
||||
+ <field name="type">service</field>
|
||||
+ </record>
|
||||
@@ -51,7 +51,7 @@ diff --git a/academy/demo.xml b/academy/demo.xml
|
||||
+ <field name="name">Course 2</field>
|
||||
+ <field name="teacher_id" ref="vaughn"/>
|
||||
+ <field name="public_categ_ids" eval="[(4, ref('academy.category_courses'), False)]"/>
|
||||
+ <field name="website_published">True</field>
|
||||
+ <field name="is_published">True</field>
|
||||
+ <field name="list_price" type="float">0</field>
|
||||
+ <field name="type">service</field>
|
||||
+ </record>
|
||||
|
||||
Reference in New Issue
Block a user