Serves O9's acceptance test directly: swap to the second demo school
by switching the active company. Every branding field this module
configures - logo, primary/secondary colour, name, currency (on the
brand-new company only, see below), address - already exists on stock
res.company; this module adds zero new model fields, only demo data
and one view override. Two full companies exist because
shared/DEMO_SCRIPT.md names both by design: St. Aloysius Public
School (Coimbatore, the rebranded default company) and Waterloo
Heights Academy (Ontario, a fresh second company).
Removed the one concrete, spec-named piece of visible Odoo branding:
portal.portal_record_sidebar's "Powered by Odoo" logo, which renders
on every portal document page including the fee invoices
mc_education_portal links to - inherited the template and dropped
that div. Verified by actually rendering the template
(ir.qweb._render) and asserting the string is gone, not just that the
xpath applied without error.
Vendored OCA web_responsive per CLAUDE.md sec 2 ("pin every
third-party addon to a commit SHA, never a branch") - pinned to
b96307a8953f3bae075b8f7d94f40f00c2e63d1f on OCA/web's 19.0 branch.
Correcting my own third_party/README.md from O0 while doing this:
`git subtree add` on the whole OCA/web repo pulls every addon in that
monorepo (23MB+) for the sake of one - updated the instructions there
to fetch the pinned commit and extract just the one addon's directory
instead. Verified installable standalone against the live container
before vendoring it into the suite.
Real finding from testing the full 9-module suite installed together,
not this module in isolation: mc_education_fees's chart-of-accounts
setup (via `account`) posts journal items for the main company before
this module's demo data runs, and account.company.write() hard-blocks
a currency change once journal items exist - correctly so, you cannot
retroactively change a currency after transactions are posted in it.
Company currency belongs at true initial setup, before any financial
module has run, never as a later "apply a theme" change; dropped the
currency_id change on the rebranded main company accordingly (the
brand-new second company has no such history, so its currency is set
safely at creation). This is exactly why this session tests each
module against a real container, then the whole suite together before
calling anything done - this specific bug only exists when multiple
modules' demo data compose, and was invisible testing this module
alone.
Full-suite verification: all 9 mc_education_* modules plus
web_responsive installed together in one database, 81 tests across 8
of the 9 modules (mc_education_admission has none - a known gap, it
was verified by hand via curl/shell against the live container
instead, see its own commit), 0 failed, 0 errors.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
534 lines
18 KiB
HTML
534 lines
18 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
|
||
<title>README.rst</title>
|
||
<style type="text/css">
|
||
|
||
/*
|
||
:Author: David Goodger (goodger@python.org)
|
||
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
|
||
:Copyright: This stylesheet has been placed in the public domain.
|
||
|
||
Default cascading style sheet for the HTML output of Docutils.
|
||
Despite the name, some widely supported CSS2 features are used.
|
||
|
||
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
|
||
customize this style sheet.
|
||
*/
|
||
|
||
/* used to remove borders from tables and images */
|
||
.borderless, table.borderless td, table.borderless th {
|
||
border: 0 }
|
||
|
||
table.borderless td, table.borderless th {
|
||
/* Override padding for "table.docutils td" with "! important".
|
||
The right padding separates the table cells. */
|
||
padding: 0 0.5em 0 0 ! important }
|
||
|
||
.first {
|
||
/* Override more specific margin styles with "! important". */
|
||
margin-top: 0 ! important }
|
||
|
||
.last, .with-subtitle {
|
||
margin-bottom: 0 ! important }
|
||
|
||
.hidden {
|
||
display: none }
|
||
|
||
.subscript {
|
||
vertical-align: sub;
|
||
font-size: smaller }
|
||
|
||
.superscript {
|
||
vertical-align: super;
|
||
font-size: smaller }
|
||
|
||
a.toc-backref {
|
||
text-decoration: none ;
|
||
color: black }
|
||
|
||
blockquote.epigraph {
|
||
margin: 2em 5em ; }
|
||
|
||
dl.docutils dd {
|
||
margin-bottom: 0.5em }
|
||
|
||
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||
dl.docutils dt {
|
||
font-weight: bold }
|
||
*/
|
||
|
||
div.abstract {
|
||
margin: 2em 5em }
|
||
|
||
div.abstract p.topic-title {
|
||
font-weight: bold ;
|
||
text-align: center }
|
||
|
||
div.admonition, div.attention, div.caution, div.danger, div.error,
|
||
div.hint, div.important, div.note, div.tip, div.warning {
|
||
margin: 2em ;
|
||
border: medium outset ;
|
||
padding: 1em }
|
||
|
||
div.admonition p.admonition-title, div.hint p.admonition-title,
|
||
div.important p.admonition-title, div.note p.admonition-title,
|
||
div.tip p.admonition-title {
|
||
font-weight: bold ;
|
||
font-family: sans-serif }
|
||
|
||
div.attention p.admonition-title, div.caution p.admonition-title,
|
||
div.danger p.admonition-title, div.error p.admonition-title,
|
||
div.warning p.admonition-title, .code .error {
|
||
color: red ;
|
||
font-weight: bold ;
|
||
font-family: sans-serif }
|
||
|
||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||
compound paragraphs.
|
||
div.compound .compound-first, div.compound .compound-middle {
|
||
margin-bottom: 0.5em }
|
||
|
||
div.compound .compound-last, div.compound .compound-middle {
|
||
margin-top: 0.5em }
|
||
*/
|
||
|
||
div.dedication {
|
||
margin: 2em 5em ;
|
||
text-align: center ;
|
||
font-style: italic }
|
||
|
||
div.dedication p.topic-title {
|
||
font-weight: bold ;
|
||
font-style: normal }
|
||
|
||
div.figure {
|
||
margin-left: 2em ;
|
||
margin-right: 2em }
|
||
|
||
div.footer, div.header {
|
||
clear: both;
|
||
font-size: smaller }
|
||
|
||
div.line-block {
|
||
display: block ;
|
||
margin-top: 1em ;
|
||
margin-bottom: 1em }
|
||
|
||
div.line-block div.line-block {
|
||
margin-top: 0 ;
|
||
margin-bottom: 0 ;
|
||
margin-left: 1.5em }
|
||
|
||
div.sidebar {
|
||
margin: 0 0 0.5em 1em ;
|
||
border: medium outset ;
|
||
padding: 1em ;
|
||
background-color: #ffffee ;
|
||
width: 40% ;
|
||
float: right ;
|
||
clear: right }
|
||
|
||
div.sidebar p.rubric {
|
||
font-family: sans-serif ;
|
||
font-size: medium }
|
||
|
||
div.system-messages {
|
||
margin: 5em }
|
||
|
||
div.system-messages h1 {
|
||
color: red }
|
||
|
||
div.system-message {
|
||
border: medium outset ;
|
||
padding: 1em }
|
||
|
||
div.system-message p.system-message-title {
|
||
color: red ;
|
||
font-weight: bold }
|
||
|
||
div.topic {
|
||
margin: 2em }
|
||
|
||
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||
margin-top: 0.4em }
|
||
|
||
h1.title {
|
||
text-align: center }
|
||
|
||
h2.subtitle {
|
||
text-align: center }
|
||
|
||
hr.docutils {
|
||
width: 75% }
|
||
|
||
img.align-left, .figure.align-left, object.align-left, table.align-left {
|
||
clear: left ;
|
||
float: left ;
|
||
margin-right: 1em }
|
||
|
||
img.align-right, .figure.align-right, object.align-right, table.align-right {
|
||
clear: right ;
|
||
float: right ;
|
||
margin-left: 1em }
|
||
|
||
img.align-center, .figure.align-center, object.align-center {
|
||
display: block;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
}
|
||
|
||
table.align-center {
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
}
|
||
|
||
.align-left {
|
||
text-align: left }
|
||
|
||
.align-center {
|
||
clear: both ;
|
||
text-align: center }
|
||
|
||
.align-right {
|
||
text-align: right }
|
||
|
||
/* reset inner alignment in figures */
|
||
div.align-right {
|
||
text-align: inherit }
|
||
|
||
/* div.align-center * { */
|
||
/* text-align: left } */
|
||
|
||
.align-top {
|
||
vertical-align: top }
|
||
|
||
.align-middle {
|
||
vertical-align: middle }
|
||
|
||
.align-bottom {
|
||
vertical-align: bottom }
|
||
|
||
ol.simple, ul.simple {
|
||
margin-bottom: 1em }
|
||
|
||
ol.arabic {
|
||
list-style: decimal }
|
||
|
||
ol.loweralpha {
|
||
list-style: lower-alpha }
|
||
|
||
ol.upperalpha {
|
||
list-style: upper-alpha }
|
||
|
||
ol.lowerroman {
|
||
list-style: lower-roman }
|
||
|
||
ol.upperroman {
|
||
list-style: upper-roman }
|
||
|
||
p.attribution {
|
||
text-align: right ;
|
||
margin-left: 50% }
|
||
|
||
p.caption {
|
||
font-style: italic }
|
||
|
||
p.credits {
|
||
font-style: italic ;
|
||
font-size: smaller }
|
||
|
||
p.label {
|
||
white-space: nowrap }
|
||
|
||
p.rubric {
|
||
font-weight: bold ;
|
||
font-size: larger ;
|
||
color: maroon ;
|
||
text-align: center }
|
||
|
||
p.sidebar-title {
|
||
font-family: sans-serif ;
|
||
font-weight: bold ;
|
||
font-size: larger }
|
||
|
||
p.sidebar-subtitle {
|
||
font-family: sans-serif ;
|
||
font-weight: bold }
|
||
|
||
p.topic-title {
|
||
font-weight: bold }
|
||
|
||
pre.address {
|
||
margin-bottom: 0 ;
|
||
margin-top: 0 ;
|
||
font: inherit }
|
||
|
||
pre.literal-block, pre.doctest-block, pre.math, pre.code {
|
||
margin-left: 2em ;
|
||
margin-right: 2em }
|
||
|
||
pre.code .ln { color: gray; } /* line numbers */
|
||
pre.code, code { background-color: #eeeeee }
|
||
pre.code .comment, code .comment { color: #5C6576 }
|
||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
||
pre.code .literal.string, code .literal.string { color: #0C5404 }
|
||
pre.code .name.builtin, code .name.builtin { color: #352B84 }
|
||
pre.code .deleted, code .deleted { background-color: #DEB0A1}
|
||
pre.code .inserted, code .inserted { background-color: #A3D289}
|
||
|
||
span.classifier {
|
||
font-family: sans-serif ;
|
||
font-style: oblique }
|
||
|
||
span.classifier-delimiter {
|
||
font-family: sans-serif ;
|
||
font-weight: bold }
|
||
|
||
span.interpreted {
|
||
font-family: sans-serif }
|
||
|
||
span.option {
|
||
white-space: nowrap }
|
||
|
||
span.pre {
|
||
white-space: pre }
|
||
|
||
span.problematic, pre.problematic {
|
||
color: red }
|
||
|
||
span.section-subtitle {
|
||
/* font-size relative to parent (h1..h6 element) */
|
||
font-size: 80% }
|
||
|
||
table.citation {
|
||
border-left: solid 1px gray;
|
||
margin-left: 1px }
|
||
|
||
table.docinfo {
|
||
margin: 2em 4em }
|
||
|
||
table.docutils {
|
||
margin-top: 0.5em ;
|
||
margin-bottom: 0.5em }
|
||
|
||
table.footnote {
|
||
border-left: solid 1px black;
|
||
margin-left: 1px }
|
||
|
||
table.docutils td, table.docutils th,
|
||
table.docinfo td, table.docinfo th {
|
||
padding-left: 0.5em ;
|
||
padding-right: 0.5em ;
|
||
vertical-align: top }
|
||
|
||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||
font-weight: bold ;
|
||
text-align: left ;
|
||
white-space: nowrap ;
|
||
padding-left: 0 }
|
||
|
||
/* "booktabs" style (no vertical lines) */
|
||
table.docutils.booktabs {
|
||
border: 0px;
|
||
border-top: 2px solid;
|
||
border-bottom: 2px solid;
|
||
border-collapse: collapse;
|
||
}
|
||
table.docutils.booktabs * {
|
||
border: 0px;
|
||
}
|
||
table.docutils.booktabs th {
|
||
border-bottom: thin solid;
|
||
text-align: left;
|
||
}
|
||
|
||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||
font-size: 100% }
|
||
|
||
ul.auto-toc {
|
||
list-style-type: none }
|
||
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="document">
|
||
|
||
|
||
<a class="reference external image-reference" href="https://odoo-community.org/get-involved?utm_source=readme">
|
||
<img alt="Odoo Community Association" src="https://odoo-community.org/readme-banner-image" />
|
||
</a>
|
||
<div class="section" id="web-responsive">
|
||
<h1>Web Responsive</h1>
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
!! This file is generated by oca-gen-addon-readme !!
|
||
!! changes will be overwritten. !!
|
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
!! source digest: sha256:cdfbec36e2e1aa83b9b44b34c64aa769b2d50867da82f88fc5c817fa641c2f9c
|
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/license-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/web/tree/19.0/web_responsive"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/web-19-0/web-19-0-web_responsive"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=19.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
||
<p>This module adds responsiveness to web backend.</p>
|
||
<p><strong>Features for all devices</strong>:</p>
|
||
<ul>
|
||
<li><p class="first">Redirect to the dashboard after logging in. Users will only be
|
||
redirected to the home page after login if they have enabled the
|
||
‘Redirect to Home’ option in their profile settings.</p>
|
||
<p><img alt="image" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/redirecthome.gif" /></p>
|
||
</li>
|
||
<li><p class="first">New navigation with the fullscreen app menu</p>
|
||
<p><img alt="image1" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/appmenu.gif" /></p>
|
||
</li>
|
||
<li><p class="first">Quick menu search inside the app menu</p>
|
||
<p><img alt="image2" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/appsearch.gif" /></p>
|
||
</li>
|
||
<li><p class="first">Sticky header & footer in list view</p>
|
||
<p><img alt="image3" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/listview.gif" /></p>
|
||
</li>
|
||
<li><p class="first">Sticky statusbar in form view</p>
|
||
<p><img alt="image4" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/formview.gif" /></p>
|
||
</li>
|
||
<li><p class="first">Bigger checkboxes in list view</p>
|
||
<p><img alt="image5" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/listview.gif" /></p>
|
||
</li>
|
||
</ul>
|
||
<p><strong>Features for mobile</strong>: * View type picker dropdown displays
|
||
comfortably</p>
|
||
<ul>
|
||
<li><p class="first">Control panel buttons use icons to save space.</p>
|
||
<p><img alt="image6" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/form_buttons.gif" /></p>
|
||
</li>
|
||
<li><p class="first">Followers and send button is displayed on mobile. Avatar is hidden.</p>
|
||
<p><img alt="image7" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/chatter.png" /></p>
|
||
</li>
|
||
<li><p class="first">Big inputs on form in edit mode</p>
|
||
</li>
|
||
</ul>
|
||
<p><strong>Features for desktop computers</strong>:</p>
|
||
<ul>
|
||
<li><p class="first">Keyboard shortcuts for easier navigation, <strong>using `Alt + Shift +
|
||
[NUM]`</strong> combination instead of just Alt + [NUM] to avoid conflict
|
||
with Firefox Tab switching. Standard Odoo keyboard hotkeys changed to
|
||
be more intuitive or accessible by fingers of one hand. F.x. Alt + S
|
||
for Save</p>
|
||
<p><img alt="image8" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/shortcuts.gif" /></p>
|
||
</li>
|
||
<li><p class="first">Autofocus on search menu box when opening the app menu</p>
|
||
<p><img alt="image9" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/appsearch.gif" /></p>
|
||
</li>
|
||
<li><p class="first">When the chatter is on the side part, the document viewer fills that
|
||
part for side-by-side reading instead of full screen. You can still
|
||
put it on full width preview clicking on the new maximize button.</p>
|
||
<p><img alt="image10" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/document_viewer.gif" /></p>
|
||
</li>
|
||
<li><p class="first">When the user chooses to send a public message the color of the
|
||
composer is different from the one when the message is an internal
|
||
log.</p>
|
||
<p><img alt="image11" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/chatter-colors.png" /></p>
|
||
</li>
|
||
</ul>
|
||
<p><strong>Table of contents</strong></p>
|
||
<div class="contents local topic" id="contents">
|
||
<ul class="simple">
|
||
<li><a class="reference internal" href="#usage" id="toc-entry-1">Usage</a></li>
|
||
<li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-2">Known issues / Roadmap</a></li>
|
||
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-3">Bug Tracker</a></li>
|
||
<li><a class="reference internal" href="#credits" id="toc-entry-4">Credits</a><ul>
|
||
<li><a class="reference internal" href="#authors" id="toc-entry-5">Authors</a></li>
|
||
<li><a class="reference internal" href="#contributors" id="toc-entry-6">Contributors</a></li>
|
||
<li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="usage">
|
||
<h2><a class="toc-backref" href="#toc-entry-1">Usage</a></h2>
|
||
<p>The following keyboard shortcuts are implemented:</p>
|
||
<ul class="simple">
|
||
<li>Navigate app search results - Arrow keys</li>
|
||
<li>Choose app result - <tt class="docutils literal">Enter</tt></li>
|
||
<li><tt class="docutils literal">Esc</tt> to close app drawer</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="known-issues-roadmap">
|
||
<h2><a class="toc-backref" href="#toc-entry-2">Known issues / Roadmap</a></h2>
|
||
<ul class="simple">
|
||
<li>App navigation with keyboard.</li>
|
||
<li>Handle long titles on forms in a better way</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="bug-tracker">
|
||
<h2><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h2>
|
||
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>.
|
||
In case of trouble, please check there if your issue has already been reported.
|
||
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
||
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_responsive%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
||
</div>
|
||
<div class="section" id="credits">
|
||
<h2><a class="toc-backref" href="#toc-entry-4">Credits</a></h2>
|
||
<div class="section" id="authors">
|
||
<h3><a class="toc-backref" href="#toc-entry-5">Authors</a></h3>
|
||
<ul class="simple">
|
||
<li>LasLabs</li>
|
||
<li>Tecnativa</li>
|
||
<li>ITerra</li>
|
||
<li>Onestein</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="contributors">
|
||
<h3><a class="toc-backref" href="#toc-entry-6">Contributors</a></h3>
|
||
<ul class="simple">
|
||
<li>Dave Lasley <<a class="reference external" href="mailto:dave@laslabs.com">dave@laslabs.com</a>></li>
|
||
<li>Jairo Llopis <<a class="reference external" href="mailto:jairo.llopis@tecnativa.com">jairo.llopis@tecnativa.com</a>></li>
|
||
<li><a class="reference external" href="https://www.onestein.nl">Onestein</a>:<ul>
|
||
<li>Dennis Sluijk <<a class="reference external" href="mailto:d.sluijk@onestein.nl">d.sluijk@onestein.nl</a>></li>
|
||
<li>Anjeel Haria</li>
|
||
</ul>
|
||
</li>
|
||
<li>Sergio Teruel <<a class="reference external" href="mailto:sergio.teruel@tecnativa.com">sergio.teruel@tecnativa.com</a>></li>
|
||
<li>Alexandre Díaz <<a class="reference external" href="mailto:dev@redneboa.es">dev@redneboa.es</a>></li>
|
||
<li>Mathias Markl <<a class="reference external" href="mailto:mathias.markl@mukit.at">mathias.markl@mukit.at</a>></li>
|
||
<li>Iván Todorovich <<a class="reference external" href="mailto:ivan.todorovich@gmail.com">ivan.todorovich@gmail.com</a>></li>
|
||
<li>Sergey Shebanin <<a class="reference external" href="mailto:sergey@shebanin.ru">sergey@shebanin.ru</a>></li>
|
||
<li>David Vidal <<a class="reference external" href="mailto:david.vidal@tecnativa.com">david.vidal@tecnativa.com</a>></li>
|
||
<li>Taras Shabaranskyi <<a class="reference external" href="mailto:shabaranskij@gmail.com">shabaranskij@gmail.com</a>></li>
|
||
<li>Angel Patel <<a class="reference external" href="mailto:patelangel1414@gmail.com">patelangel1414@gmail.com</a>></li>
|
||
<li>Mohamed Alkobrosli <<a class="reference external" href="mailto:malkobrosly@kencove.com">malkobrosly@kencove.com</a>></li>
|
||
<li><a class="reference external" href="https://www.heliconia.io">Heliconia Solutions Pvt. Ltd.</a><ul>
|
||
<li>Bhavesh Heliconia</li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference external" href="https://www.iku.solutions">IKU Solutions</a><ul>
|
||
<li>Yan Chirino <<a class="reference external" href="mailto:yan.chirino@iku.solutions">yan.chirino@iku.solutions</a>></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="maintainers">
|
||
<h3><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h3>
|
||
<p>This module is maintained by the OCA.</p>
|
||
<a class="reference external image-reference" href="https://odoo-community.org">
|
||
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
|
||
</a>
|
||
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||
mission is to support the collaborative development of Odoo features and
|
||
promote its widespread use.</p>
|
||
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainers</a>:</p>
|
||
<p><a class="reference external image-reference" href="https://github.com/Tardo"><img alt="Tardo" src="https://github.com/Tardo.png?size=40px" /></a> <a class="reference external image-reference" href="https://github.com/SplashS"><img alt="SplashS" src="https://github.com/SplashS.png?size=40px" /></a></p>
|
||
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/19.0/web_responsive">OCA/web</a> project on GitHub.</p>
|
||
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|