Skip to content
Extraits de code Groupes Projets
Valider ada06131 rédigé par Théo - Le Filament's avatar Théo - Le Filament
Parcourir les fichiers

[WIP] add site and refactore files

parent 9b6c941f
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -16,8 +16,9 @@
"templates/blog_templates.xml",
"templates/portal_layout.xml",
# views
"views/scop_portal_blog.xml",
"views/scop_portal_blog_category.xml",
"views/scop_portal_blog_page.xml",
"views/scop_portal_blog_site.xml",
# menus
"views/menus.xml",
],
......
......@@ -7,8 +7,8 @@ from odoo.addons.scopext_portal.controllers.portal import Extranet
class ExtranetBlog(Extranet):
def _prepare_portal_ur_home_values(self):
parent_values = super()._prepare_portal_values()
def _prepare_portal_blog_home_values(self):
parent_values = super()._prepare_portal_values(ensure_coop=True)
values = {
"title": "Extranet CGScop - Mon Union Régionale",
}
......@@ -18,14 +18,16 @@ class ExtranetBlog(Extranet):
# Routes
# ------------------------------------------------------
@route(
["/ur", "/ur/<model('scop.portal.blog'):blog_page>"],
["/ur", "/ur/<model('scop.portal.blog.page'):blog_page>"],
type="http",
auth="user",
methods=["GET"],
website=True,
)
def coop_ur_blog(self, blog_page=False):
ur_id = request.env.user.partner_id.ur_id
selected_coop = request.env.user._get_selected_coop()
ur_id = selected_coop.ur_id
if not ur_id:
return request.render("http_routing.404")
......@@ -33,12 +35,14 @@ class ExtranetBlog(Extranet):
"scop.portal.blog.category"
].get_portal_blog_categories(ur_id)
values = self._prepare_portal_ressource_home_values()
values["category_ids"] = category_ids
if not category_ids:
return request.render("http_routing.404")
values = self._prepare_portal_blog_home_values()
if blog_page:
values["page_id"] = blog_page
return request.render("scopext_portal_blog.blog_page", values)
values["category_ids"] = category_ids
return request.render("scopext_portal_blog.blog_home", values)
from . import scop_portal_blog
from . import scop_portal_blog_category
from . import scop_portal_blog_page
from . import scop_portal_blog_site
......@@ -16,14 +16,17 @@ class ScopPortalBlogCategory(models.Model):
active = fields.Boolean("Actif", default=True)
sequence = fields.Integer(default=10)
color = fields.Char("Couleur")
logo = fields.Image()
logo = fields.Image("Logo")
page_ids = fields.One2many(
comodel_name="scop.portal.blog", inverse_name="category_id", string="Catégorie"
comodel_name="scop.portal.blog.page",
inverse_name="category_id",
string="Catégorie",
)
# TODO: Ajouter la valeur par défaut
ur_id = fields.Many2one(
comodel_name="union.regionale",
string="Union Régionale",
required=True,
)
# ------------------------------------------------------
......
......@@ -4,8 +4,8 @@
from odoo import fields, models
class ScopPortalBlog(models.Model):
_name = "scop.portal.blog"
class ScopPortalBlogPage(models.Model):
_name = "scop.portal.blog.page"
_inherit = ["mail.thread"]
_description = "Portal Blog Page"
_order = "sequence, name"
......@@ -18,7 +18,7 @@ class ScopPortalBlog(models.Model):
required=True,
tracking=1,
)
sequence = fields.Integer()
sequence = fields.Integer(default=10)
active = fields.Boolean("Actif", tracking=1, default=True)
category_id = fields.Many2one(
comodel_name="scop.portal.blog.category",
......@@ -32,6 +32,7 @@ class ScopPortalBlog(models.Model):
comodel_name="union.regionale",
string="Union Régionale",
tracking=1,
required=True,
)
is_published = fields.Boolean("Publié", tracking=1, default=False)
content = fields.Html("Contenu")
......
# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class ScopPortalBlogSite(models.Model):
_name = "scop.portal.blog.site"
_inherit = ["mail.thread"]
_description = "Portal Blog Site"
# ------------------------------------------------------
# Fields declaration
# ------------------------------------------------------
name = fields.Char(
"Titre",
required=True,
tracking=1,
)
# TODO: Ajouter la valeur par défaut
ur_id = fields.Many2one(
comodel_name="union.regionale",
string="Union Régionale",
tracking=1,
required=True,
)
image = fields.Image("Image d'accueil")
content = fields.Html("Contenu de la page d'accueil")
# ------------------------------------------------------
# Action
# ------------------------------------------------------
def action_publish(self):
for blog in self:
blog.is_published = True
def action_unpublish(self):
for blog in self:
blog.is_published = False
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_scop_portal_blog_group_portal,access_scop_portal_blog_group_portal,model_scop_portal_blog,base.group_portal,1,0,0,0
access_scop_portal_blog_group_editor,access_scop_portal_blog_group_editor,model_scop_portal_blog,group_portal_blog_editor,1,1,1,1
access_scop_portal_blog_category_group_portal,access_scop_portal_blog_category_group_portal,model_scop_portal_blog_category,base.group_portal,1,0,0,0
access_scop_portal_blog_category_group_editor,access_scop_portal_blog_category_group_editor,model_scop_portal_blog_category,group_portal_blog_editor,1,1,1,1
access_scop_portal_blog_page_group_portal,access_scop_portal_blog_page_group_portal,model_scop_portal_blog_page,base.group_portal,1,0,0,0
access_scop_portal_blog_page_group_editor,access_scop_portal_blog_page_group_editor,model_scop_portal_blog_page,group_portal_blog_editor,1,1,1,1
access_scop_portal_blog_site_group_portal,access_scop_portal_blog_site_group_portal,model_scop_portal_blog_site,base.group_portal,1,0,0,0
access_scop_portal_blog_site_group_editor,access_scop_portal_blog_site_group_editor,model_scop_portal_blog_site,group_portal_blog_editor,1,1,1,1
......@@ -53,8 +53,8 @@
<!-- Admin -->
<record id="scop_portal_blog_admin_ur_rule" model="ir.rule">
<field name="name">Scop Portal: Admin Rule</field>
<field name="model_id" ref="model_scop_portal_blog" />
<field name="name">Scop Portal Page: Admin Rule</field>
<field name="model_id" ref="model_scop_portal_blog_page" />
<field name="domain_force">[(1, '=', 1)]</field>
<field
name="groups"
......@@ -78,4 +78,17 @@
<field name="perm_create" eval="True" />
<field name="perm_unlink" eval="True" />
</record>
<record id="scop_portal_blog_admin_ur_rule" model="ir.rule">
<field name="name">Scop Portal Site: Admin Rule</field>
<field name="model_id" ref="model_scop_portal_blog_site" />
<field name="domain_force">[(1, '=', 1)]</field>
<field
name="groups"
eval="[(6, 0, [ref('scopext_portal_blog.group_portal_blog_admin')])]"
/>
<field name="perm_read" eval="True" />
<field name="perm_write" eval="True" />
<field name="perm_create" eval="True" />
<field name="perm_unlink" eval="True" />
</record>
</odoo>
......@@ -8,8 +8,7 @@
name="blog_scop_nav_lvl1"
>
<xpath expr="//nav/t[@id='coop']" position="after">
<t t-set="ur_id" t-value="request.env.user.partner_id.ur_id" />
<t t-if="ur_id and request.env['scop.portal.blog.category'].get_portal_blog_categories(ur_id)">
<t t-if="coop.ur_id and request.env['scop.portal.blog.category'].get_portal_blog_categories(coop.ur_id)">
<t id="home" t-call="scopext_portal.nav_lvl1_item">
<t t-set="link" t-value="'/ur'" />
<t t-set="name" t-value="'ur'" />
......
......@@ -12,7 +12,7 @@
<menuitem
id="menu_scop_portal_blog_page"
name="Pages"
action="scop_portal_blog_action"
action="scop_portal_blog_page_action"
parent="menu_scop_portal_blog_root"
sequence="10"
/>
......@@ -23,4 +23,11 @@
parent="menu_scop_portal_blog_root"
sequence="20"
/>
<menuitem
id="menu_scop_portal_blog_site"
name="Sites"
action="scop_portal_blog_site_action"
parent="menu_scop_portal_blog_root"
sequence="30"
/>
</odoo>
......@@ -3,9 +3,9 @@
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<!-- Form -->
<record id="scop_portal_blog_form" model="ir.ui.view">
<field name="name">scop.portal.blog.form</field>
<field name="model">scop.portal.blog</field>
<record id="scop_portal_blog_page_form" model="ir.ui.view">
<field name="name">scop.portal.blog.page.form</field>
<field name="model">scop.portal.blog.page</field>
<field name="arch" type="xml">
<form>
<sheet>
......@@ -42,9 +42,9 @@
</record>
<!-- List -->
<record id="scop_portal_blog_list" model="ir.ui.view">
<field name="name">scop.portal.blog.list</field>
<field name="model">scop.portal.blog</field>
<record id="scop_portal_blog_page_list" model="ir.ui.view">
<field name="name">scop.portal.blog.page.list</field>
<field name="model">scop.portal.blog.page</field>
<field name="arch" type="xml">
<list>
<field name="sequence" widget="handle" />
......@@ -57,9 +57,9 @@
</record>
<!-- Search -->
<record id="scop_portal_blog_search" model="ir.ui.view">
<field name="name">scop.portal.blog.search</field>
<field name="model">scop.portal.blog</field>
<record id="scop_portal_blog_page_search" model="ir.ui.view">
<field name="name">scop.portal.blog.page.search</field>
<field name="model">scop.portal.blog.page</field>
<field name="arch" type="xml">
<search>
<field name="name" />
......@@ -100,10 +100,10 @@
</record>
<!-- Actions -->
<record model="ir.actions.act_window" id="scop_portal_blog_action">
<record model="ir.actions.act_window" id="scop_portal_blog_page_action">
<field name="name">Page de blog</field>
<field name="res_model">scop.portal.blog</field>
<field name="path">blog-page</field>
<field name="res_model">scop.portal.blog.page</field>
<!-- <field name="path">blog-page</field> -->
<field name="view_mode">list,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
......@@ -112,10 +112,10 @@
</field>
</record>
<record model="ir.actions.server" id="action_publish_blog_page">
<record id="action_publish_blog_page" model="ir.actions.server">
<field name="name">Publier</field>
<field name="model_id" ref="model_scop_portal_blog" />
<field name="binding_model_id" ref="model_scop_portal_blog" />
<field name="model_id" ref="model_scop_portal_blog_page" />
<field name="binding_model_id" ref="model_scop_portal_blog_page" />
<field name="state">code</field>
<field name="binding_view_types">list</field>
<field name="code">
......
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2024- Le Filament (https://le-filament.com)
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<!-- Form -->
<record id="scop_portal_blog_site_form" model="ir.ui.view">
<field name="name">scop.portal.blog.site.form</field>
<field name="model">scop.portal.blog.site</field>
<field name="arch" type="xml">
<form>
<sheet>
<div class="oe_title mb-2">
<h1>
<field
name="name"
default_focus="1"
placeholder="Titre du site"
/>
</h1>
</div>
<group>
<group>
<field name="ur_id" options="{'no_create': 1}" />
</group>
</group>
<separator string="Contenu" />
<field name="content" />
</sheet>
<chatter />
</form>
</field>
</record>
<!-- List -->
<record id="scop_portal_blog_list" model="ir.ui.view">
<field name="name">scop.portal.blog.site.list</field>
<field name="model">scop.portal.blog.site</field>
<field name="arch" type="xml">
<list>
<field name="name" />
<field name="ur_id" />
</list>
</field>
</record>
<!-- Search -->
<record id="scop_portal_blog_search" model="ir.ui.view">
<field name="name">scop.portal.blog.site.search</field>
<field name="model">scop.portal.blog.site</field>
<field name="arch" type="xml">
<search>
<field name="name" />
<field name="ur_id" />
<separator />
<group expand="0" name="group_by" string="Group By">
<filter
name="group_ur_id"
string="UR"
context="{'group_by' : 'ur_id'}"
/>
</group>
</search>
</field>
</record>
<!-- Actions -->
<record id="scop_portal_blog_site_action" model="ir.actions.act_window">
<field name="name">Sites</field>
<field name="res_model">scop.portal.blog.site</field>
<field name="path">blog-site</field>
<field name="view_mode">list,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Créer un nouveau site
</p>
</field>
</record>
</odoo>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter