Skip to content

Instantly share code, notes, and snippets.

View ray-odoo's full-sized avatar
💭
Spreading purple around the world!

Ray Carnes ray-odoo

💭
Spreading purple around the world!
View GitHub Profile
@ray-odoo
ray-odoo / gist:cef23d6fee6e2e819250fa19ac289c2d
Last active September 23, 2018 17:46
Upgrade SAAS to Enterprise (July 2015)
1. Take a backup of the SAAS database. (You must be logged into odoo.com as the Administrator of the database).
2. Perform the following PSQL:
update ir_module_module set state = 'to remove' where name = 'saas_trial';
insert into base_config_settings(auth_signup_reset_password) values(true);
update res_partner set signup_type='reset', signup_token='rsvabcdefghijykalklk', signup_expiration=to_timestamp('20200411','YYYYMMDD') where id=(select partner_id from res_users where id=1);
ALT:
@ray-odoo
ray-odoo / gist:bd97d69b3e308d10f531c8392b71f7d6
Last active September 28, 2018 17:12
Large database backup and restore process
OUT:
pg_dump production --no-owner --format=c --file=production.sql
FILESTORE:
tar -czvf /home/ubuntu/production.tar.gz production
IN:
@ray-odoo
ray-odoo / gist:b0b474d2246d662c9207ac2294f63833
Created December 7, 2018 18:54
KILL PostgreSQL connections preventing an Odoo database from being deleted (without restarting PostgreSQL)
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid() AND datname = 'database_name';
Phone
Hotel
Internet
Meals - Client
Meals - Employee
Shipping
Supplies
Travel Insurance
Airfare
Baggage
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),
# only tested with the speficic import file with the following schema:
# Internal ID,ID,Name,Asset Type,Asset Original Cost,Asset Current Cost,Serial Number,Quantity,Date Created,Purchase Date,Depreciation Start Date,Current Net Book Value,Cumulative Depreciation
import xlrd
import xmlrpc.client
import requests
import base64
import datetime
# Available variables:
# - env: Odoo Environment on which the action is triggered
# - model: Odoo Model of the record on which the action is triggered; is a void recordset
# - record: record on which the action is triggered; may be void
# - records: recordset of all records on which the action is triggered in multi-mode; may be void
# - time, datetime, dateutil, timezone: useful Python libraries
# - log: log(message, level='info'): logging function to record debug information in ir.logging table
# - Warning: Warning Exception to use with raise
# To return an action, assign: action = {...}
for record in self:
if record.delivery_count > 0:
record['x_delivery_status'] = 'draft'
else:
global_done = False
for picking in record.picking_ids.sorted(key=lambda r: r.id):
local_done = False
if picking.state in ['waiting','confirmed']:
record['x_delivery_status'] = 'waiting'
if picking.state in ['assigned']:
delete from crm_lead;
delete from purchase_order_line;
delete from purchase_order;
delete from sale_order_line;
delete from sale_order;
delete from procurement_order;
delete from procurement_group;
@ray-odoo
ray-odoo / action.code
Last active January 11, 2021 00:57
Leverage Employee Skills when assigning Tasks in the Projects App
# https://www.odoo.com/forum/help-1/how-can-i-leverage-employee-skills-when-assigning-tasks-in-the-projects-app-181599
###### Offboard:
env['ir.ui.view'].search([('name','=','custom_ray_odoo')]).unlink()
env['ir.model.fields'].search([('name','=','x_employee_skill_ids')]).unlink()
###### Onboard:
# Schema