Software
Notas, comentarios, documentación del software de código abierto utilizado
Odoo
Configuración Odoo
HELL: odoo / xxxxx ubuntu 14
* ODOO superadmin: xxxxx
BDD: MoblesMarti xxxxxx / xxxxxx
/opt/
└── odoo
├── bdd
├── conf
├── data
├── l10n-spain
├── logs
├── OCB
├── otros_modulos
├── scripts
└── tmp
- http://portal.moblesmarti.com:9069/web/database/manager
- http://portal.moblesmarti.com:9069/web/login
Document
Los adjuntos se guardan en el servidor, en la ruta: /opt/openerp70/openerp-server70/openerp/filestore
Dentro una carpeta por base de datos.
Se crea un enlace para acceso rápido en: /opt/openerp70/filestore
Tutoriales varios
Algunos enlaces:
- https://github.com/OCA/
- https://odoospain.odoo.com/
- https://odoospain.odoo.com/forum/ayuda-1/question/instalacion-de-odoo-repositorios-y-localizacion-espanola-28
- https://github.com/Tecnativa/doodba
- https://codingdodo.com/
Ramas OCA/OCB:
$ git clone -b 8.0 https://github.com/OCA/OCB.git odoo-server <-- Esto para versión 8.0
La localización española se cambia también, y ahora se encuentra bajo el paraguas de OCA, siendo su repositorio:
$ git clone -b 8.0 https://github.com/OCA/l10n-spain.git <-- Versión 8.0
Proyecto muy interesante, para montar Odoo, que ha liberado Tecnativa:
Lee bien la documentación antes de ponerte a montarlo, por que lo que has de clonar no es el base, es el scaffolding:
Tienes casi todo automatizado, y puedes tener Odoo funcionando en… Más bien, en lo que tarden en clonar los repos, etc.
(si no necesitas el histórico de commits, entonces, el parámetro DEPTH_DEFAULT de los YAML del docker-compose, a 1).
Como configurar Odoo con dominio propio como url
Automated migration script
- http://learnopenerp.blogspot.com.es/p/home-page.html
- http://blog.openinnova.es/post/155161141585/odoo-mensajería-para-equipos-de-trabajo-guía
- http://fundamentos-de-desarrollo-en-odoo.readthedocs.io/es/latest/index.html
- https://www.qubiq.es/blog/manuales-odoo-1
- https://blog.laslabs.com
- http://www.odoo.yenthevg.com/adding-filters-existing-search-views
- http://www.odoo.yenthevg.com
- http://es.stackoverflow.com/questions/tagged/odoo
- https://odoo-development.readthedocs.io/en/latest/dev/debug/-slow_internet_emulation.html
Libros
- https://goliveira.gitbooks.io/bachacove/content/capitulo_i.html
- https://github.com/goliveirab/traduccion-odoo-development-essentials
Instalación
- http://angelmoya.es/blog/odoo/odoo-8-en-ubuntu-16-04/
- https://www.youtube.com/playlist?list=PLZHhaK4KCZZyocy6-b0Kq7LSrHP4cYV9q
Localización española
- http://guimi.net/blogs/hiparco/instalar-en-openerp-los-modulos-de-la-localizacion-espanola
- http://www.openerpweb.es/instalar-localizacion-espanola-en-openerp
- https://youtu.be/-pbnCE1XLqo (TPV en Odoo con Posbox)
- http://fundamentos-de-desarrollo-en-odoo.readthedocs.io/es/latest/capitulos/construyendo-tu-primera-aplicacion-odoo.html
- Crear grupos de seguridad en Odoo: http://www.odoo.yenthevg.com/creating-security-groups-odoo/
- https://olea.gitbooks.io/practicas-con-odoo/content/
- Nóminas: https://github.com/jjlopezg/conecta
Tutoriales RRHH
https://odoobook.readthedocs.io/sv/latest/human-resource/holiday.html
Tutorial Letsencrypt
Hay un módulo de OCA letsencrypt que te permite configurar odoo con uno de estos certificados gratuitos. Lo tienes disponible en https://github.com/OCA/server-tools/tree/10.0/letsencrypt. Consejos antes de instalarlo: Tener correctamente configurado nginx para hacer de proxy. Quitar el puerto de la propiedad web.base.url.
Te pongo un ejemplo de como debería ir el fichero de configuración del sitio (yo desactivaría la redirección https a que el certificado estuvieses correctamente instalado).
upstream openerp { server 127.0.0.1:8069; } server { listen 443 ssl; listen 80; if ($scheme = “http”) { set
KaTeX parse error: Expected 'EOF', got '}' at position 19: …irect_https 1; }̲ if (
KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 20: …rect\_https 1; }̲ if (
KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 20: …rect\_https 1; }̲ if (
request_uri ~ ^/.well-known/acme-challenge/) { set
KaTeX parse error: Expected 'EOF', got '}' at position 20: …rect\_https 0; }̲ if (
KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 20: …rect\_https 0; }̲ if (
KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 20: …rect\_https 0; }̲ if (
redirect_https) { rewrite ^ https://
server\_name
server_namerequest_uri? permanent; } server_name myodoo.tld www.myodoo.tld;
ssl_certificate /var/lib/odoo/.local/share/Odoo/letsencrypt/myodoo.tld.crt;
ssl_certificate_key /var/lib/odoo/.local/share/Odoo/letsencrypt/myodoo.tld.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
Trucos
Ocultar pestaña compras en productos para algunos usuarios 🏷️
En “Usuarios y compaías”/"Grupos
1. Incluye un grupo con los usuarios que sí pueden ver las compras (créalo)
En “Elementos de menú”
1. Asigna el grupo creado al menú compras
2. Asegúrate que los usuarios que no quieres que vean no pertenecen al grupo ni al menú compras
–stop-after-init (es tu amigo). odoo --help (para mas info). 🏷️
Sin acentos en las búsquedas
Error vistas
Si no tienes nada extraño hecho en tu base de datos, reinicia odoo con el parámetro --update=all para que refresque y reconstruya las vistas. $ /opt/odoo/odoo12/odoo-bin -c /etc/odoo12.conf --update=all
Contabilidad
Anticipos
Facturas
- https://groups.google.com/forum/?hl=es#!topic/openerp-spain-users/i_E57zClFBE (Suprimir factura validada v.11)
- https://groups.google.com/forum/?hl=es#!topic/openerp-spain-users/SSJ6W43vpDU (Cancelar facturas pagadas en Odoo v.11)
BookStack
Previsualizar pdf
- https://github.com/BookStackApp/BookStack/issues/705
- https://gist.github.com/aghster/8e7d8ea53ac6c8fe74698ede242c2a37
- https://github.com/ddkhanh/bookstack-pdf-viewer/
- https://gist.github.com/sprklinginfo/624c4c431a0f802556071ec459b6ca76
Here's an altered version of the above scripts that I recently amended for a BookStack user, that was using the above hacks. Think I tested it in v22.06. This script is not official nor supported:
View Code
I eventually got it working by also having a second file named pdf.worker.min.js along side pdf.min.js.
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.0.466/pdf.min.js"></script>
<style>
canvas[data-pdfurl] {
background-color: lightgrey;
width: 100%;
}
.page-content a {
color: #39f;
text-decoration: underline;
}
.pdf-wrapper {
position: relative;
height: 80vh;
width: 100%;
}
.pdf-wrapper .download-link {
position: absolute;
top: -2em;
right: 0;
z-index: 50;
}
.pdf-wrapper .pdf-scroller {
height: 100%;
overflow: auto;
}
</style>
<script type="text/javascript">
// ------------------- THIS SECTION ADDS A PDF BUTTON TO THE EDITOR TOOLBAR THAT ALLOWS YOU TO EMBED PDFS
// Use BookStack editor event to add custom "Insert PDF" button into main toolbar
window.addEventListener('editor-tinymce::pre-init', event => {
const mceConfig = event.detail.config;
mceConfig.toolbar = mceConfig.toolbar.replace('link', 'link insertpdf')
});
// Use BookStack editor event to define the custom "Insert PDF" button.
window.addEventListener('editor-tinymce::setup', event => {
const editor = event.detail.editor;
// Add PDF insert button
editor.ui.registry.addButton('insertpdf', {
tooltip: 'Insert PDF',
icon: 'document-properties',
onAction() {
editor.windowManager.open({
title: 'Insert PDF',
body: {
type: 'panel',
items: [
{type: 'textarea', name: 'pdfurl', label: 'PDF URL'}
]
},
onSubmit: function(e) {
// Insert content when the window form is submitted
editor.insertContent('<p> <canvas data-pdfurl="' + e.getData().pdfurl + '"></canvas> </p>');
e.close();
},
buttons: [
{
type: 'submit',
text: 'Insert PDF'
}
]
});
}
});
});
//-------------------- THE CODE BELOW SHALL BE ACTIVE IN VIEWING MODE TO EMBED PDFS
var renderPdf=function(canvas) {
var url = canvas.dataset.pdfurl;
var pdf = null;
// wrap canvas in div
var wrapper = document.createElement('div');
wrapper.className='pdf-wrapper';
var scroller = document.createElement('div');
scroller.className='pdf-scroller';
wrapper.appendChild(scroller);
canvas.parentNode.insertBefore(wrapper, canvas.nextSibling);
scroller.insertBefore(canvas, null);
var downloadLink = document.createElement('a');
downloadLink.href = url;
downloadLink.className="download-link";
downloadLink.innerText = 'Download PDF now ↓';
wrapper.appendChild(downloadLink);
var renderPage = function(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
// Fetch canvas' 2d context
var context = canvas.getContext('2d');
// Set dimensions to Canvas
canvas.height = viewport.height;
canvas.width = viewport.width;
canvas.style.maxWidth='100%';
// Prepare object needed by render method
var renderContext = {
canvasContext: context,
viewport: viewport
};
// Render PDF page
page.render(renderContext);
if (currentPage < pdf.numPages) {
currentPage++;
var newCanvas = document.createElement('canvas');
scroller.insertBefore(newCanvas, canvas.nextSibling);
scroller.insertBefore(document.createElement('hr'), canvas.nextSibling);
canvas=newCanvas;
pdf.getPage(currentPage).then(renderPage);
}
};
var currentPage = 1;
pdfjsLib.getDocument(url)
.then(function(pdfLocal) {
pdf = pdfLocal;
return pdf.getPage(1);
})
.then(renderPage);
};
window.addEventListener('DOMContentLoaded', function() {
Array.prototype.forEach.call(document.querySelectorAll('canvas[data-pdfurl]'), renderPdf);
});
</script>
Configuración FTP
- ip: 80.24.106.183 port: 10029
- ip: 80.24.106.183 port: 10005
Usuari: josep | Password: bis712
carpeta i ruta: /var/www/bookstack/public/uploads/files exemple: /var/www/bookstack/public/uploads/files/novedades/novedades_otono_1.pdf