diff --git a/crm_claim_portal/README.rst b/crm_claim_portal/README.rst new file mode 100644 index 00000000..f95952cf --- /dev/null +++ b/crm_claim_portal/README.rst @@ -0,0 +1,32 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +================ +CRM Claim Portal +================ +This module allows portal user access to their related claims. + + +Key Features +------------ +- New button **preview_crm_claim** on Claims. +- Visible in **form** view. + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smash it by providing detailed and welcomed feedback. + +Credits +======= + +Contributors +------------ +* Oihane Crucelaegui + +Do not contact contributors directly about support or help with technical issues. diff --git a/crm_claim_portal/__init__.py b/crm_claim_portal/__init__.py new file mode 100644 index 00000000..91c5580f --- /dev/null +++ b/crm_claim_portal/__init__.py @@ -0,0 +1,2 @@ +from . import controllers +from . import models diff --git a/crm_claim_portal/__manifest__.py b/crm_claim_portal/__manifest__.py new file mode 100644 index 00000000..69329f37 --- /dev/null +++ b/crm_claim_portal/__manifest__.py @@ -0,0 +1,24 @@ +# Copyright 2021 Oihane Crucelaegui - AvanzOSC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + "name": "CRM Claim Portal", + "version": "18.0.1.0.0", + "category": "Customer Relationship Management", + "license": "AGPL-3", + "author": "AvanzOSC", + "website": "https://github.com/avanzosc/crm-addons", + "depends": [ + "crm_claim", + "crm_claim_code", + "crm_claim_usability", + "portal", + ], + "data": [ + "security/ir.model.access.csv", + "security/crm_claim_security.xml", + "views/crm_claim_template.xml", + "views/crm_claim_view.xml", + ], + "installable": True, +} diff --git a/crm_claim_portal/controllers/__init__.py b/crm_claim_portal/controllers/__init__.py new file mode 100644 index 00000000..cec4a60b --- /dev/null +++ b/crm_claim_portal/controllers/__init__.py @@ -0,0 +1 @@ +from . import crm_claim_portal diff --git a/crm_claim_portal/controllers/crm_claim_portal.py b/crm_claim_portal/controllers/crm_claim_portal.py new file mode 100644 index 00000000..a9cf1fbd --- /dev/null +++ b/crm_claim_portal/controllers/crm_claim_portal.py @@ -0,0 +1,366 @@ +import base64 +from operator import itemgetter + +from dateutil.relativedelta import relativedelta + +from odoo import _, fields, http +from odoo.exceptions import AccessError, MissingError +from odoo.http import request +from odoo.osv.expression import OR +from odoo.tools import date_utils +from odoo.tools import groupby as groupbyelem + +from odoo.addons.portal.controllers.portal import CustomerPortal +from odoo.addons.portal.controllers.portal import pager as portal_pager + + +class CustomerPortal(CustomerPortal): + def _prepare_home_portal_values(self, counters): + values = super()._prepare_home_portal_values(counters) + + if "claim_count" in counters: + values["claim_count"] = request.env["crm.claim"].search_count([]) + return values + + def _claim_get_page_view_values(self, claim, access_token, **kwargs): + values = { + "page_name": "claim", + "claim": claim, + } + return self._get_page_view_values( + claim, access_token, values, "my_claims_history", False, **kwargs + ) + + def _get_claim_searchbar_sortings(self): + return { + "date": {"label": _("Newest"), "order": "create_date desc"}, + "name": { + "label": _("Name"), + "order": "name", + }, + "deadline": { + "label": _("Deadline"), + "order": "date_deadline desc", + }, + } + + def _get_claim_searchbar_filters(self): + today = fields.Date.today() + quarter_start, quarter_end = date_utils.get_quarter(today) + last_week = today + relativedelta(weeks=-1) + last_month = today + relativedelta(months=-1) + last_year = today + relativedelta(years=-1) + + return { + "all": { + "label": _("All"), + "domain": [], + }, + "my_claims": { + "label": _("My Claims"), + "domain": [ + "|", + ("user_id", "=", request.env.user.id), + ("partner_id", "=", request.env.user.partner_id.id), + ], + }, + "open": { + "label": _("Open"), + "domain": [("date_closed", "=", False)], + }, + "close": { + "label": _("Closed"), + "domain": [("date_closed", "!=", False)], + }, + "today": { + "label": _("Today"), + "domain": [("create_date", "=", today)], + }, + "week": { + "label": _("This week"), + "domain": [ + ("create_date", ">=", date_utils.start_of(today, "week")), + ("create_date", "<=", date_utils.end_of(today, "week")), + ], + }, + "month": { + "label": _("This month"), + "domain": [ + ("create_date", ">=", date_utils.start_of(today, "month")), + ("create_date", "<=", date_utils.end_of(today, "month")), + ], + }, + "year": { + "label": _("This year"), + "domain": [ + ("create_date", ">=", date_utils.start_of(today, "year")), + ("create_date", "<=", date_utils.end_of(today, "year")), + ], + }, + "quarter": { + "label": _("This Quarter"), + "domain": [ + ("create_date", ">=", quarter_start), + ("create_date", "<=", quarter_end), + ], + }, + "last_week": { + "label": _("Last week"), + "domain": [ + ("create_date", ">=", date_utils.start_of(last_week, "week")), + ("create_date", "<=", date_utils.end_of(last_week, "week")), + ], + }, + "last_month": { + "label": _("Last month"), + "domain": [ + ("create_date", ">=", date_utils.start_of(last_month, "month")), + ("create_date", "<=", date_utils.end_of(last_month, "month")), + ], + }, + "last_year": { + "label": _("Last year"), + "domain": [ + ("create_date", ">=", date_utils.start_of(last_year, "year")), + ("create_date", "<=", date_utils.end_of(last_year, "year")), + ], + }, + } + + def _get_claim_searchbar_inputs(self): + return { + "content": { + "input": "content", + "label": _("Search (in Content)"), + }, + "message": { + "input": "message", + "label": _("Search in Messages"), + }, + "stage": { + "input": "stage", + "label": _("Search in Stages"), + }, + "all": { + "input": "all", + "label": _("Search in All"), + }, + } + + def _get_claim_searchbar_groupby(self): + return { + "none": { + "input": "none", + "label": _("None"), + }, + "stage": { + "input": "stage", + "label": _("Stage"), + }, + "partner": { + "input": "partner", + "label": _("Reported by"), + }, + "user": { + "input": "user", + "label": _("Assigned to"), + }, + } + + @http.route( + ["/my/claims", "/my/claims/page/"], + type="http", + auth="user", + website=True, + ) + def portal_my_claims( + self, + page=1, + date_begin=None, + date_end=None, + sortby=None, + filterby=None, + search=None, + search_in="content", + groupby=None, + **kw, + ): + values = self._prepare_portal_layout_values() + claim_obj = request.env["crm.claim"] + + searchbar_sortings = self._get_claim_searchbar_sortings() + searchbar_filters = self._get_claim_searchbar_filters() + searchbar_inputs = self._get_claim_searchbar_inputs() + searchbar_groupby = self._get_claim_searchbar_groupby() + + # default sort by value + if not sortby: + sortby = "date" + order = searchbar_sortings[sortby]["order"] + + # default filter by value + if not filterby: + filterby = "open" + domain = searchbar_filters.get(filterby, searchbar_filters.get("all"))["domain"] + + # default group by value + if not groupby: + groupby = "none" + + if date_begin and date_end: + domain += [ + ("create_date", ">", date_begin), + ("create_date", "<=", date_end), + ] + + # search + if search and search_in: + search_domain = [] + if search_in in ("content", "all"): + search_domain = OR( + [ + search_domain, + [ + "|", + ("name", "ilike", search), + ("description", "ilike", search), + ], + ] + ) + if search_in in ("message", "all"): + search_domain = OR( + [search_domain, [("message_ids.body", "ilike", search)]] + ) + if search_in in ("stage", "all"): + search_domain = OR([search_domain, [("stage_id", "ilike", search)]]) + domain += search_domain + + # projects count + claim_count = claim_obj.search_count(domain) + # pager + pager = portal_pager( + url="/my/claims", + url_args={ + "date_begin": date_begin, + "date_end": date_end, + "sortby": sortby, + "filterby": filterby, + "groupby": groupby, + "search_in": search_in, + "search": search, + }, + total=claim_count, + page=page, + step=self._items_per_page, + ) + + # content according to pager and archive selected + if groupby == "stage": + order = f"stage_id, {order}" + # force sort on stage first to group by stage in view + elif groupby == "partner": + order = f"partner_id, {order}" + # force sort on partner first to group by partner in view + elif groupby == "user": + order = f"user_id, {order}" + # force sort on user first to group by user in view + + claims = claim_obj.search( + domain, order=order, limit=self._items_per_page, offset=pager["offset"] + ) + request.session["my_claims_history"] = claims.ids[:100] + + if groupby == "stage": + grouped_claims = [ + request.env["crm.claim"].concat(*g) + for k, g in groupbyelem(claims, itemgetter("stage_id")) + ] + elif groupby == "partner": + grouped_claims = [ + request.env["crm.claim"].concat(*g) + for k, g in groupbyelem(claims, itemgetter("partner_id")) + ] + elif groupby == "user": + grouped_claims = [ + request.env["crm.claim"].concat(*g) + for k, g in groupbyelem(claims, itemgetter("user_id")) + ] + else: + grouped_claims = [claims] + + values.update( + { + "date": date_begin, + "date_end": date_end, + "grouped_claims": grouped_claims, + "page_name": "claim", + "default_url": "/my/claims", + "pager": pager, + "search_in": search_in, + "search": search, + "sortby": sortby, + "groupby": groupby, + "filterby": filterby, + "searchbar_sortings": searchbar_sortings, + "searchbar_groupby": searchbar_groupby, + "searchbar_inputs": searchbar_inputs, + "searchbar_filters": searchbar_filters, + } + ) + return request.render("crm_claim_portal.portal_my_claims", values) + + @http.route(["/my/claim/"], type="http", auth="user", website=True) + def portal_my_claim(self, claim_id, access_token=None, **kw): + try: + claim_sudo = self._document_check_access( + "crm.claim", claim_id, access_token + ) + except (AccessError, MissingError): + return request.redirect("/my/home") + + values = self._claim_get_page_view_values(claim_sudo, access_token, **kw) + return request.render("crm_claim_portal.portal_my_claim", values) + + def _prepare_submit_claim_vals(self, **kw): + values = { + "company_id": request.env.user.company_id.id, + "description": kw.get("description"), + "name": kw.get("subject"), + "user_id": False, # in order to avoid assigning user to the claim + "partner_id": request.env.user.partner_id.id, + "partner_phone": request.env.user.partner_id.phone, + "email_from": request.env.user.partner_id.email, + } + return values + + @http.route("/new/claim", type="http", auth="user", website=True) + def create_new_claim(self, **kw): + values = self._prepare_portal_layout_values() + values.update( + { + "error": {}, + "error_message": [], + "page_name": "claim", + "default_url": "/my/claims", + } + ) + return request.render("crm_claim_portal.portal_create_claim", values) + + @http.route("/submitted/claim", type="http", auth="user", website=True, csrf=True) + def submit_ticket(self, **kw): + vals = self._prepare_submit_claim_vals(**kw) + new_claim = request.env["crm.claim"].sudo().create(vals) + new_claim.message_subscribe(partner_ids=request.env.user.partner_id.ids) + if kw.get("attachment"): + for c_file in request.httprequest.files.getlist("attachment"): + data = c_file.read() + if c_file.filename: + request.env["ir.attachment"].sudo().create( + { + "name": c_file.filename, + "datas": base64.b64encode(data), + "res_model": "helpdesk.ticket", + "res_id": new_claim.id, + } + ) + return request.redirect(f"/my/claim/{new_claim.id}") diff --git a/crm_claim_portal/i18n/crm_claim_portal.pot b/crm_claim_portal/i18n/crm_claim_portal.pot new file mode 100644 index 00000000..78a24a72 --- /dev/null +++ b/crm_claim_portal/i18n/crm_claim_portal.pot @@ -0,0 +1,347 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * crm_claim_portal +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-08-29 09:26+0000\n" +"PO-Revision-Date: 2023-08-29 09:26+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claims assigned to:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claims in stage:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claims reported by:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Status:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Assigned to" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Date:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Deadline:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Description" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Reported by" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__access_warning +msgid "Access warning" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "All" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Assigned to" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model,name:crm_claim_portal.model_crm_claim +msgid "Claim" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claim Subject" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_layout +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_home_sale +msgid "Claims" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Closed" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Contact" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Current stage of the claim" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Current stage of this claim" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,help:crm_claim_portal.field_crm_claim__access_url +msgid "Customer Portal URL" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Deadline" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_create_claim +msgid "Description:" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__display_name +msgid "Display Name" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "History" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__id +msgid "ID" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim____last_update +msgid "Last Modified on" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Last month" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Last week" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Last year" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "My Claims" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Name" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "New Claim" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Newest" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "None" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Open" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__access_url +msgid "Portal Access URL" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.crm_claim_view_form +msgid "Preview Claim" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Ref" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Reported by" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search (in Content)" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search in All" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search in Messages" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search in Stages" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__access_token +msgid "Security Token" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_create_claim +msgid "Send a new claim" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_create_claim +msgid "Send new claim" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +#, python-format +msgid "Stage" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_create_claim +msgid "Subject:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_create_claim +msgid "" +"Submit Claim\n" +" " +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "There are currently no claims for your account." +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This Quarter" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This month" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This week" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This year" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Today" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Total:" +msgstr "" diff --git a/crm_claim_portal/i18n/es.po b/crm_claim_portal/i18n/es.po new file mode 100644 index 00000000..e1eee555 --- /dev/null +++ b/crm_claim_portal/i18n/es.po @@ -0,0 +1,352 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * crm_claim_portal +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-08-29 09:27+0000\n" +"PO-Revision-Date: 2023-08-29 09:27+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claims assigned to:" +msgstr "" +"Reclamaciones asignadas a:" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claims in stage:" +msgstr "Reclamaciones en etapa:" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claims reported by:" +msgstr "" +"Reclamaciones notificadas " +"por:" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Status:" +msgstr "Estado:" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Assigned to" +msgstr "Asignado a" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Date:" +msgstr "Fecha:" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Deadline:" +msgstr "Fecha tope:" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Description" +msgstr "Descripción" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Reported by" +msgstr "Notificado por" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__access_warning +msgid "Access warning" +msgstr "Alerta de acceso" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "All" +msgstr "Todos" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Assigned to" +msgstr "Asignado a" + +#. module: crm_claim_portal +#: model:ir.model,name:crm_claim_portal.model_crm_claim +msgid "Claim" +msgstr "Reclamación" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claim Subject" +msgstr "Asunto de la reclamación" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_layout +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_home_sale +msgid "Claims" +msgstr "Reclamaciones" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Closed" +msgstr "Cerrado" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Contact" +msgstr "Contacto" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Current stage of the claim" +msgstr "Estado actual de la reclamación" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Current stage of this claim" +msgstr "Etapa actual de esta reclamación" + +#. module: crm_claim_portal +#: model:ir.model.fields,help:crm_claim_portal.field_crm_claim__access_url +msgid "Customer Portal URL" +msgstr "URL del portal de cliente" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Deadline" +msgstr "Fecha tope" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_create_claim +msgid "Description:" +msgstr "Descripción:" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "History" +msgstr "Historial" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__id +msgid "ID" +msgstr "Identificador" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim____last_update +msgid "Last Modified on" +msgstr "Última modificación el" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Last month" +msgstr "Mes anterior" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Last week" +msgstr "Semana anterior" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Last year" +msgstr "Año anterior" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "My Claims" +msgstr "Mis reclamaciones" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Name" +msgstr "Nombre" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "New Claim" +msgstr "Nueva reclamación" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Newest" +msgstr "Más reciente" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "None" +msgstr "Ninguno" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Open" +msgstr "Abierto" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__access_url +msgid "Portal Access URL" +msgstr "URL de acceso al portal" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.crm_claim_view_form +msgid "Preview Claim" +msgstr "Previsualizar reclamación" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Ref" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Reported by" +msgstr "Notificado por" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search (in Content)" +msgstr "Buscar (en Contenido)" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search in All" +msgstr "Buscar en todos" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search in Messages" +msgstr "Buscar en mensajes" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search in Stages" +msgstr "Buscar en etapas" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__access_token +msgid "Security Token" +msgstr "Token de seguridad" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_create_claim +msgid "Send a new claim" +msgstr "Enviar una nueva reclamación" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_create_claim +msgid "Send new claim" +msgstr "Enviar nueva reclamación" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +#, python-format +msgid "Stage" +msgstr "Etapa" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_create_claim +msgid "Subject:" +msgstr "Asunto:" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_create_claim +msgid "" +"Submit Claim\n" +" " +msgstr "" +"Enviar reclamación\n" +" " + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "There are currently no claims for your account." +msgstr "No hay reclamaciones para tu cuenta." + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This Quarter" +msgstr "Este Trimestre" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This month" +msgstr "Este mes" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This week" +msgstr "Esta semana" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This year" +msgstr "Este año" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Today" +msgstr "Hoy" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Total:" +msgstr "" diff --git a/crm_claim_portal/i18n/eu_ES.po b/crm_claim_portal/i18n/eu_ES.po new file mode 100644 index 00000000..c097ccb5 --- /dev/null +++ b/crm_claim_portal/i18n/eu_ES.po @@ -0,0 +1,336 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * crm_claim_portal +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-03 15:01+0000\n" +"PO-Revision-Date: 2021-11-03 15:01+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claims assigned to:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claims in stage:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claims reported by:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Status:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Assigned to" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Date:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Deadline:" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Description" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Reported by" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__access_warning +msgid "Access warning" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "All" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Assigned to" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model,name:crm_claim_portal.model_crm_claim +msgid "Claim" +msgstr "Erreklamazioa" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Claim Subject" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_layout +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_home_sale +msgid "Claims" +msgstr "Erreklamazioak" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Closed" +msgstr "Itxita" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Contact" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Current stage of the claim" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "Current stage of this claim" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,help:crm_claim_portal.field_crm_claim__access_url +msgid "Customer Portal URL" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Deadline" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__display_name +msgid "Display Name" +msgstr "Izena erakutsi" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claim +msgid "History" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__id +msgid "ID" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim____last_update +msgid "Last Modified on" +msgstr "Azken aldaketa" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Last month" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Last week" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Last year" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Name" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Newest" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "None" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Open" +msgstr "Irekia" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__access_url +msgid "Portal Access URL" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.crm_claim_view_form +msgid "Preview Claim" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__rating_ids +msgid "Rating" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__rating_avg +msgid "Rating Average" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__rating_last_feedback +msgid "Rating Last Feedback" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__rating_last_image +msgid "Rating Last Image" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__rating_last_value +msgid "Rating Last Value" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__rating_count +msgid "Rating count" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,help:crm_claim_portal.field_crm_claim__rating_last_feedback +msgid "Reason of the rating" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "Ref" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Reported by" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search (in Content)" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search in All" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search in Messages" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Search in Stages" +msgstr "" + +#. module: crm_claim_portal +#: model:ir.model.fields,field_description:crm_claim_portal.field_crm_claim__access_token +msgid "Security Token" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +#, python-format +msgid "Stage" +msgstr "" + +#. module: crm_claim_portal +#: model_terms:ir.ui.view,arch_db:crm_claim_portal.portal_my_claims +msgid "There are no claims." +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This Quarter" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This month" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This week" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "This year" +msgstr "" + +#. module: crm_claim_portal +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#: code:addons/crm_claim_portal/controllers/crm_claim_portal.py:0 +#, python-format +msgid "Today" +msgstr "" diff --git a/crm_claim_portal/models/__init__.py b/crm_claim_portal/models/__init__.py new file mode 100644 index 00000000..29fa1b4d --- /dev/null +++ b/crm_claim_portal/models/__init__.py @@ -0,0 +1 @@ +from . import crm_claim diff --git a/crm_claim_portal/models/crm_claim.py b/crm_claim_portal/models/crm_claim.py new file mode 100644 index 00000000..1abcb794 --- /dev/null +++ b/crm_claim_portal/models/crm_claim.py @@ -0,0 +1,23 @@ +# Copyright 2021 Oihane Crucelaegui - AvanzOSC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import models + + +class CrmClaim(models.Model): + _name = "crm.claim" + _inherit = ["crm.claim", "portal.mixin"] + + def _compute_access_url(self): + res = super()._compute_access_url() + for task in self: + task.access_url = f"/my/claim/{task.id}" + return res + + def preview_crm_claim(self): + self.ensure_one() + return { + "type": "ir.actions.act_url", + "target": "self", + "url": self.get_portal_url(), + } diff --git a/crm_claim_portal/pyproject.toml b/crm_claim_portal/pyproject.toml new file mode 100644 index 00000000..4231d0cc --- /dev/null +++ b/crm_claim_portal/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_claim_portal/security/crm_claim_security.xml b/crm_claim_portal/security/crm_claim_security.xml new file mode 100644 index 00000000..2eb6b6db --- /dev/null +++ b/crm_claim_portal/security/crm_claim_security.xml @@ -0,0 +1,11 @@ + + + + Claim Portal + + + [('commercial_partner_id', 'child_of', [user.partner_id.commercial_partner_id.id])] + + diff --git a/crm_claim_portal/security/ir.model.access.csv b/crm_claim_portal/security/ir.model.access.csv new file mode 100644 index 00000000..5cdf374c --- /dev/null +++ b/crm_claim_portal/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_crm_claim_portal,crm.claim.portal,crm_claim.model_crm_claim,base.group_portal,1,0,0,0 +access_crm_claim_stage_portal,crm.claim.stage.portal,crm_claim.model_crm_claim_stage,base.group_portal,1,0,0,0 diff --git a/crm_claim_portal/static/description/icon.png b/crm_claim_portal/static/description/icon.png new file mode 100644 index 00000000..71b8d02f Binary files /dev/null and b/crm_claim_portal/static/description/icon.png differ diff --git a/crm_claim_portal/views/crm_claim_template.xml b/crm_claim_portal/views/crm_claim_template.xml new file mode 100644 index 00000000..87ed4d95 --- /dev/null +++ b/crm_claim_portal/views/crm_claim_template.xml @@ -0,0 +1,301 @@ + + + + + + + + + + +