Skip to content
Snippets Groups Projects
Commit 347088c3 authored by Daniil Digtyar Vasilieva's avatar Daniil Digtyar Vasilieva :call_me:
Browse files

Merge branch 'feature/ADD_energy_projects' into 'dev'

[ADD] Base energy projects module and energy selfconsumtion module

See merge request !110
parents ba3df574 5b32ba42
No related branches found
No related tags found
4 merge requests!138Hotfix setup name error,!134Release v14.0.1.1.6,!129Draft: Release v14.0.1.1.5,!110[ADD] Base energy projects module and energy selfconsumtion module
Pipeline #28951 passed
Showing
with 233 additions and 0 deletions
from . import models
{
"name": "Energy Projects",
"summary": """
Base module for energetic projects.
""",
"description": """
""",
"author": "Coopdevs Treball SCCL & Som Energia SCCL",
"website": "https://somcomunitats.coop/",
"category": "Customizations",
"version": "14.0.1.0.1",
"depends": [
"base",
"mail",
],
"data": [
"security/res_groups.xml",
"security/ir.model.access.csv",
"security/ir_rule_data.xml",
],
}
from . import project
from . import project_type
from . import inscription
from odoo import _, fields, models
class Inscription(models.Model):
_name = "energy_project.inscription"
_description = "Inscriptions for a project"
_sql_constraints = {
(
"unique_project_id_partner_id",
"unique (project_id, partner_id)",
_("Partner is already signed up in this project."),
)
}
company_id = fields.Many2one(
"res.company", default=lambda self: self.env.company, readonly=True
)
project_id = fields.Many2one(
"energy_project.project",
required=True,
ondelete="restrict",
string="Energy Project",
check_company=True,
)
partner_id = fields.Many2one(
"res.partner",
required=True,
ondelete="restrict",
string="Partner",
)
effective_date = fields.Date(required=True)
from odoo import _, fields, models
STATE_VALUES = [
("draft", _("Draft")),
("activation", _("In Activation")),
("active", _("Active")),
]
class Project(models.Model):
_name = "energy_project.project"
_description = "Energy project"
name = fields.Char(required=True)
type = fields.Many2one("energy_project.project_type", required=True, readonly=True)
state = fields.Selection(STATE_VALUES, default="draft", required=True)
company_id = fields.Many2one(
"res.company", default=lambda self: self.env.company, readonly=True
)
inscription_ids = fields.One2many(
"energy_project.inscription", "project_id", required=True
)
active = fields.Boolean(default=True)
# address fields
street = fields.Char(required=True)
street2 = fields.Char(required=True)
zip = fields.Char(change_default=True, required=True)
city = fields.Char(required=True)
state_id = fields.Many2one(
"res.country.state",
string="State",
ondelete="restrict",
domain="[('country_id', '=?', country_id)]",
required=True,
)
country_id = fields.Many2one(
"res.country", string="Country", ondelete="restrict", required=True
)
from odoo import fields, models
class ProjectType(models.Model):
_name = "energy_project.project_type"
_description = "Type for energy project"
name = fields.Char(required=True)
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_energy_project_project_user,energy_project.project.user,model_energy_project_project,group_user,1,0,0,0
access_energy_project_project_type_user,energy_project.project_type.user,model_energy_project_project_type,group_user,1,0,0,0
access_energy_project_inscription_user,energy_project.inscription.user,model_energy_project_inscription,group_user,1,0,0,0
access_energy_project_project_admin,energy_project.project.admin,model_energy_project_project,group_admin,1,1,1,1
access_energy_project_project_type_admin,energy_project.project_type.admin,model_energy_project_project_type,group_admin,1,1,1,1
access_energy_project_inscription_admin,energy_project.inscription.admin,model_energy_project_inscription,group_admin,1,1,1,1
<?xml version="1.0" ?>
<odoo>
<record model="ir.rule" id="energy_project_company_rule">
<field name="name">Energy Project multi-company</field>
<field name="model_id" ref="energy_project.model_energy_project_project" />
<field name="global" eval="True" />
<field
name="domain_force"
>['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
</record>
</odoo>
<?xml version="1.0" ?>
<odoo>
<record id="energy_projects_category" model="ir.module.category">
<field name="name">Energy Projects</field>
</record>
<!-- new groups -->
<record model="res.groups" id="group_user">
<field name="name">User</field>
<field name="category_id" ref="energy_projects_category" />
</record>
<record model="res.groups" id="group_admin">
<field name="name">Administrator</field>
<field name="category_id" ref="energy_projects_category" />
</record>
</odoo>
energy_project/static/description/icon.png

3.63 KiB

from . import models
{
"name": "Energy Projects Energy Communities",
"summary": """
Module glue between Energy Projects and Energy Communities.
""",
"description": """
""",
"author": "Coopdevs Treball SCCL & Som Energia SCCL",
"website": "https://somcomunitats.coop/",
"category": "Customizations",
"version": "14.0.1.0.1",
"depends": [
"energy_project",
"energy_communities",
],
"data": [
"security/res_users_role_data.xml",
],
}
from . import inscription
from odoo import fields, models
class Inscription(models.Model):
_inherit = "energy_project.inscription"
partner_id = fields.Many2one(domain=[("member", "=", True)])
<?xml version="1.0" ?>
<odoo>
<record model="res.users.role" id="energy_communities.role_ce_member">
<field
name="implied_ids"
eval="[
(4, ref('energy_project.group_user')),
]"
/>
</record>
<record model="res.users.role" id="energy_communities.role_ce_admin">
<field
name="implied_ids"
eval="[
(4, ref('energy_project.group_admin')),
]"
/>
</record>
<record model="res.users.role" id="energy_communities.role_platform_admin">
<field
name="implied_ids"
eval="[
(4, ref('energy_project.group_admin')),
]"
/>
</record>
</odoo>
energy_project_energy_communities/static/description/icon.png

3.63 KiB

from . import models
{
"name": "Energy Self-consumption Project",
"summary": """
Module for energetic self-consumption projects.
""",
"description": """
""",
"author": "Coopdevs Treball SCCL & Som Energia SCCL",
"website": "https://somcomunitats.coop/",
"category": "Customizations",
"version": "14.0.1.0.1",
"depends": [
"base",
"mail",
"energy_project",
],
"data": [
"security/ir.model.access.csv",
"security/ir_rule_data.xml",
"data/project_type_data.xml",
"views/selfconsumption_views.xml",
"views/supply_point_views.xml",
"views/res_partner_views.xml",
],
}
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<data>
<record id="selfconsumption_project_type" model="energy_project.project_type">
<field name="name">Self-consumption Project</field>
</record>
</data>
</odoo>
from . import selfconsumption
from . import supply_point
from . import partner
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment