Skip to content

Instantly share code, notes, and snippets.

View ilyasProgrammer's full-sized avatar

Ilyas ilyasProgrammer

  • Sindelfingen
View GitHub Profile
@ilyasProgrammer
ilyasProgrammer / t_inherit.xml
Created September 22, 2017 12:27
"t" template inheritance in Odoo
<template>
<t t-extend="PivotView.FieldSelection">
<t t-jquery='li:has(> a[t-att-data-interval]):first' t-operation="before">
<li t-att-data-field="field[0]"><a href="#" t-att-data-interval="'hour'">Hour</a></li>
</t>
</t>
</template>
@ilyasProgrammer
ilyasProgrammer / timezone.py
Created September 17, 2017 16:19
Timezone datetime UTC odoo convertation fix
tzinfo = pytz.timezone(self._context.get('tz', 'utc') or 'utc')
self.start_time = tzinfo.localize(my_date_time).astimezone(pytz.UTC)
@ilyasProgrammer
ilyasProgrammer / old_kernels.sh
Created September 5, 2017 07:04
Удаление старых ядер
Для удаления старых ядер, кроме последнего и предпоследнего, можно использовать команду
sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)
а после этого выполнить
sudo apt-get autoremove
А также может помочь
@ilyasProgrammer
ilyasProgrammer / msg.py
Created July 6, 2017 08:47
Odoo show popup message
return {'warning': {'message': '1', 'title': '2', 'field': 'state'}}
@ilyasProgrammer
ilyasProgrammer / date_compare.py
Last active January 29, 2023 08:07
Odoo compare datetime and date in domain. Current day, week, month, year in domain.
# in xml:
# Current day:
domain="[('some_date_time', '&gt;', (context_today()-datetime.timedelta(days=1)).strftime('%%Y-%%m-%%d')),('start_time', '&lt;', (context_today()+datetime.timedelta(days=1)).strftime('%%Y-%%m-%%d'))]
# Current week:
domain="[('some_date_time', '&gt;=', (context_today()-datetime.timedelta(days=context_today().weekday())).strftime('%%Y-%%m-%%d')),('start_time', '&lt;=', (context_today()-datetime.timedelta(days=context_today().weekday())+ datetime.timedelta(days=6)).strftime('%%Y-%%m-%%d'))]
# Current year:
domain="[('some_date_time', '&gt;=', (datetime.date(datetime.date.today().year, 1, 1)).strftime('%%Y-%%m-%%d')),('start_time', '&lt;=', (datetime.date(datetime.date.today().year, 12, 31)).strftime('%%Y-%%m-%%d'))]
#in python:
yesterday = datetime.datetime.now() - datetime.timedelta(days = 2)
@ilyasProgrammer
ilyasProgrammer / odoo8_shell.py
Created May 30, 2017 10:15
Connect to Odoo 8 database using terminal
import openerp
ODOO_CONF = '/pd/tv_service/odoo.cfg'
UID = openerp.SUPERUSER_ID
openerp.tools.config.parse_config(['--config=%s' % ODOO_CONF])
with openerp.api.Environment.manage():
registry = openerp.modules.registry.RegistryManager.get('fl')
with registry.cursor() as cr:
ctx = openerp.api.Environment(cr, UID, {})['res.users'].context_get()
@ilyasProgrammer
ilyasProgrammer / default_get.xml
Last active May 28, 2017 08:19
default_get доступные поля
Что бы какие то поля родителя (рекорда инициирующего создание другого рекорда) были доступны их надо передавать в контексте:
<field name="lot_id" attrs="{'invisible': [('has_tracking', '=', 'none')]}"
context="{'product_id': product_id, 'lot_id': lot_id}"/>
@ilyasProgrammer
ilyasProgrammer / template.html
Last active October 13, 2021 11:52
Odoo email template with context, table and loop
<p>Dear,</p>
<p>The following invoices are not collected:</p>
<div style="width: 150px;float:left;font-weight:bold">Invoice Number</div>
<div style="width: 150px;float:left;font-weight:bold">Customer</div>
<div style="width: 150px;float:left;font-weight:bold">Invoice Value</div>
<div style="width: 150px;float:left;font-weight:bold">Invoice Date</div>
<div style="width: 150px;float:left;font-weight:bold">Due Date</div>
% for row in ctx.get('recs'):
<br>
@ilyasProgrammer
ilyasProgrammer / message.py
Last active May 17, 2017 16:46
Odoo server action to send messages with rec set using template
template_id = self.pool['email.template'].search(cr,uid,[('name','=','Invoice reminder tmplate')])[0]
recs_ids = self.pool['account.invoice'].search(cr,uid,[('state','not in',['draft','paid','cancel']),('type','=','out_invoice')])
recs = self.pool['account.invoice'].browse(cr,uid,recs_ids)
self.pool['email.template'].send_mail(cr,uid,template_id,1,context={'recs':recs})
@ilyasProgrammer
ilyasProgrammer / mail.py
Created May 17, 2017 14:56
Odoo send email
#Send mail sans queue
ir_mail_server = self.pool.get('ir.mail_server')
msg = ir_mail_server.build_email("[email protected]", ["[email protected]"], "My subject", "my message")
ir_mail_server.send_email(cr, uid, msg)