Feb 1, 2022
odoo activate face detection on login page
Dec 14, 2021
golang OTP just simple play
Aug 14, 2021
[solved] py3o.formats can not installed
well, just simple solution,
1. download source file
2. python3 setup.py install
3. sudo vim models/ir_actions_report.py
4.
import sys
egg_path='/opt/odoo13/odooaddons/report_py3o/models/py3o.formats/dist/py3o.formats-0.3-py3.6.egg'
sys.path.append(egg_path)
import py3o.formats
5. restart odoo then install the module
Mar 11, 2021
odoo 13 on ubuntu 20 ssl error, [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1123)
sudo vim /etc/ssl/openssl.cnf
at first line add
openssl_conf = default_conf
#
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#
# Note that you can include other files from the main configuration
# file using the .include directive.
#.include filename
# identifier (optional, default: sha1)
[ default_conf ]
ssl_conf = ssl_sect
[ssl_sect]
system_default = ssl_default_sect
[ssl_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT:@SECLEVEL=0
its to solve the error message [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1123)
Oct 1, 2019
RDS backup database with template
problems :
Solutions
Sep 9, 2019
SOLVED auth_session_timeout redirection looping issue
Related : https://github.com/OCA/server-tools/issues/1482
Aug 14, 2019
odoo add followers when task change followers
just a simple automation
partners_who_are_users = []
users = env['res.users'].search([])
for user in users:
partners_who_are_users.append(user.partner_id.id)
followers = []
for partner in record.project_id.message_follower_ids.ids:
if partner in partners_who_are_users:
followers.append(partner)
followers.append(record.user_id.partner_id.id)
record.project_id.message_subscribe(followers)
SOLVED odoo 11 Domains no longer working with dynamic dates
https://github.com/odoo/odoo/issues/22956
on V10, we can use :
[["create_date","<",time.strftime('%Y-%m-%d')]]
this is a simple solution,
main idea is change "%" notation from strftime to native, make it pass the "eval" to be compiled.
Aug 9, 2019
all about followers odoo
Automatically add follower to Sales Order if user(s) is a follower of the Contact - Odoo 10

add followers automatically
To expand on David's answer, I needed to add the Customer as a follower on a LEAD in v10.I created an Automated Action that looked for crm.lead records created or updated that also had either a Customer or Email populated.If the record had a Customer, I needed to just add that Customer as a follower (as long as it wasn't already).If the record had an Email, I needed to check if a Customer already existed, and if not - create them.This is the code I used for the Server Action:if record.partner_id:partner = record.partner_idelse:partner = env['res.partner'].search([('email','=',record.email_from)])if not partner:reg = {'name': record.contact_name or record.email_from,'email': record.email_from,'type': 'contact',}partner = env['res.partner'].create(reg)partner_id = partner.idreg = {'res_id': record.id,'res_model': 'crm.lead','partner_id': partner_id,}if not env['mail.followers'].search([('res_id','=',record.id),('res_model','=','crm.lead'),('partner_id','=',partner_id)]):follower_id = env['mail.followers'].create(reg)
Jul 12, 2019
solved odoo redirect loop nginx ssl
Jul 5, 2019
SOLVED, odoo 11, It is not possible to unreserve more products of than you have in stock
i had a similar problem, Odoo send me this fix:
ARM created a fix for this. In order to implement it you need to follow these steps:
1.debug mode
2.technical/server actions
3.create
4.action name: e.g. fix unreserved qty
5.model: ir.actions.server
6.action to do: "execute python code"
7.copy/paste the fix underneath the pre-existing code
8."save"
9."create contextual action"
10.refresh page
11.action/fix "fix unreserved qty"
12.wait for it to load
13."remove contextual action"
14.action/delete
here is the code
============
quants = env['stock.quant'].search([])
move_line_ids = []
warning = ''
for quant in quants:
move_lines = env["stock.move.line"].search([
('product_id', '=', quant.product_id.id),
('location_id', '=', quant.location_id.id),
('lot_id', '=', quant.lot_id.id),
('package_id', '=', quant.package_id.id),
('owner_id', '=', quant.owner_id.id),
('product_qty', '!=', 0)
])
move_line_ids += move_lines.ids
reserved_on_move_lines = sum(move_lines.mapped('product_qty'))
move_line_str = str.join(', ', [str(move_line_id) for move_line_id in move_lines.ids])
if quant.location_id.should_bypass_reservation():
# If a quant is in a location that should bypass the reservation, its `reserved_quantity` field
# should be 0.
if quant.reserved_quantity != 0:
quant.write({'reserved_quantity': 0})
else:
# If a quant is in a reservable location, its `reserved_quantity` should be exactly the sum
# of the `product_qty` of all the partially_available / assigned move lines with the same
# characteristics.
if quant.reserved_quantity == 0:
if move_lines:
move_lines.with_context(bypass_reservation_update=True).write({'product_uom_qty': 0})
elif quant.reserved_quantity < 0:
quant.write({'reserved_quantity': 0})
if move_lines:
move_lines.with_context(bypass_reservation_update=True).write({'product_uom_qty': 0})
else:
if reserved_on_move_lines != quant.reserved_quantity:
move_lines.with_context(bypass_reservation_update=True).write({'product_uom_qty': 0})
quant.write({'reserved_quantity': 0})
else:
if any(move_line.product_qty < 0 for move_line in move_lines):
move_lines.with_context(bypass_reservation_update=True).write({'product_uom_qty': 0})
quant.write({'reserved_quantity': 0})
move_lines = env['stock.move.line'].search([
('product_id.type', '=', 'product'),
('product_qty', '!=', 0),
('id', 'not in', move_line_ids),
])
move_lines_to_unreserve = []
for move_line in move_lines:
if not move_line.location_id.should_bypass_reservation():
move_lines_to_unreserve.append(move_line.id)
if len(move_lines_to_unreserve) > 1:
env.cr.execute(""" UPDATE stock_move_line SET product_uom_qty = 0, product_qty = 0 WHERE id in %s ;""" % (tuple(move_lines_to_unreserve), ))
elif len(move_lines_to_unreserve) == 1:
env.cr.execute(""" UPDATE stock_move_line SET product_uom_qty = 0, product_qty = 0 WHERE id = %s ;""" % (move_lines_to_unreserve[0]))
then on the logs you will see :
2019-07-05 15:32:54,032 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2144]2019-07-05 15:32:54,388 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2145]2019-07-05 15:32:54,600 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2146]2019-07-05 15:32:54,814 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2147]2019-07-05 15:32:55,026 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2148]2019-07-05 15:32:55,242 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2149]2019-07-05 15:32:55,458 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2150]2019-07-05 15:32:55,674 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2151]2019-07-05 15:32:55,886 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2152]2019-07-05 15:32:56,095 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2153]2019-07-05 15:32:56,306 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2154]2019-07-05 15:32:56,517 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2155]2019-07-05 15:32:56,736 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2156]2019-07-05 15:32:56,952 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2157]2019-07-05 15:32:57,164 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2158]2019-07-05 15:32:57,378 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2159]2019-07-05 15:32:57,595 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2160]2019-07-05 15:32:57,808 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2161]2019-07-05 15:32:58,023 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2162]2019-07-05 15:32:58,234 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2163]2019-07-05 15:32:58,447 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2164]2019-07-05 15:32:58,654 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2165]2019-07-05 15:32:58,868 710 INFO dexexp odoo.models.unlink: User #6 deleted stock.move.line records with IDs: [2166]2019-07-05 15:32:59,081
Jun 26, 2019
SOLVED MAP odoo "Requests to the server have been blocked by an extension"
remove
odoo nginx ssl error 499 or 304
Secure Connection Failed
An error occurred during a connection to kolaboratorium.com. SSL received an unexpected New Session Ticket handshake message. Error code: SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICKET
The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
Please contact the website owners to inform them of this problem.
Learn more…
or sometimes showing error
ERR_SSL_PROTOCOL_ERROR
This site can’t provide a secure connection
Jun 25, 2019
just cleaning dashboard
<t t-name="DashboardApps">
<div class="text-center o_web_settings_dashboard_apps">
<i class="fa fa-cog fa-4x text-muted o_browse_apps" style="cursor: pointer;"></i>
<div class="o_web_settings_dashboard_header">
<t t-set="installed_apps" t-value="widget.data.installed_apps"/>
<t t-if="installed_apps">
<t t-esc="installed_apps"></t>
<t t-if="installed_apps == 1">Installed App</t>
<t t-if="installed_apps > 1">Installed Apps</t>
</t>
<t t-if="! installed_apps">
No app installed
</t>
</div>
<div>
<a class="btn btn-primary btn-block o_browse_apps" role="button"><strong>Browse Apps</strong></a>
</div>
<!-- div class="o_web_settings_dashboard_pills">
<a href="https://www.odoo.com/apps/modules" target="_blank" class="pull-left"><i class="fa fa-rocket fa-2x text-muted"/> App store</a>
<a href="https://www.odoo.com/apps/themes" target="_blank" class="pull-right"><i class="fa fa-picture-o fa-2x text-muted"/> Theme store</a>
</div -->
<div class="clearfix"/>
</div>
</t>
see :
then
see : <span class="o_mail_request_permission">
untuk dialog box title dlsb ada di sini
sudo vim addons/web/static/src/js/services/crash_manager.js
dan sudo vim addons/web/static/src/js/core/dialog.js