Update to 4.8 [CI SKIP]

This commit is contained in:
Javier Uribe 2018-06-27 16:20:35 +02:00
parent 2973da8c30
commit 46c7c8dfd4
7 changed files with 114 additions and 27 deletions

View File

@ -1,9 +1,57 @@
image: python:all clone:
env: hg:
- POSTGRESQL_URI=postgresql://postgres@127.0.0.1:5432/ image: plugins/hg
- MYSQL_URI=mysql://root@127.0.0.1:3306/
script: pipeline:
- pip install tox tox:
- tox -e "{py27,py33,py34,py35}-{sqlite,postgresql}" --skip-missing-interpreters image: ${IMAGE}
environment:
- CFLAGS=-O0
- DB_CACHE=/cache
- TOX_TESTENV_PASSENV=CFLAGS DB_CACHE
- POSTGRESQL_URI=postgresql://postgres@postgresql:5432/
commands:
- pip install tox
- tox -e "${TOXENV}-${DATABASE}"
notify:
image: drillster/drone-email
from: drone@localhost
host: smtp
port: 25
skip_verify: true
when:
status: [ changed, failure ]
services: services:
- postgres postgresql:
image: postgres
when:
matrix:
DATABASE: postgresql
matrix:
include:
- IMAGE: python:2.7
TOXENV: py27
DATABASE: sqlite
- IMAGE: python:2.7
TOXENV: py27
DATABASE: postgresql
- IMAGE: python:3.4
TOXENV: py34
DATABASE: sqlite
- IMAGE: python:3.4
TOXENV: py34
DATABASE: postgresql
- IMAGE: python:3.5
TOXENV: py35
DATABASE: sqlite
- IMAGE: python:3.5
TOXENV: py35
DATABASE: postgresql
- IMAGE: python:3.6
TOXENV: py36
DATABASE: sqlite
- IMAGE: python:3.6
TOXENV: py36
DATABASE: postgresql

View File

@ -3,7 +3,7 @@
# copyright notices and license terms. # copyright notices and license terms.
from datetime import datetime from datetime import datetime
from trytond.model import ModelSQL, ModelView, fields from trytond.model import ModelSQL, ModelView, fields, DeactivableMixin
from trytond.pool import Pool, PoolMeta from trytond.pool import Pool, PoolMeta
from trytond.pyson import Bool, Eval, Not from trytond.pyson import Bool, Eval, Not
from trytond.transaction import Transaction from trytond.transaction import Transaction
@ -12,7 +12,7 @@ from trytond.transaction import Transaction
__all__ = ['ElectronicMailFilter', 'SearchingStart'] __all__ = ['ElectronicMailFilter', 'SearchingStart']
class ElectronicMailFilter(ModelSQL, ModelView): class ElectronicMailFilter(DeactivableMixin, ModelSQL, ModelView):
'eMail Filter' 'eMail Filter'
__name__ = 'electronic.mail.filter' __name__ = 'electronic.mail.filter'
@ -23,7 +23,6 @@ class ElectronicMailFilter(ModelSQL, ModelView):
model = fields.Function(fields.Many2One('ir.model', 'Model'), model = fields.Function(fields.Many2One('ir.model', 'Model'),
'on_change_with_model') 'on_change_with_model')
cron = fields.Many2One('ir.cron', 'Cron', readonly=True) cron = fields.Many2One('ir.cron', 'Cron', readonly=True)
active = fields.Boolean('Active')
profile = fields.Many2One('searching.profile', 'Profile', profile = fields.Many2One('searching.profile', 'Profile',
domain=[ domain=[
('model', '=', Eval('model')), ('model', '=', Eval('model')),
@ -77,10 +76,6 @@ class ElectronicMailFilter(ModelSQL, ModelView):
}, },
}) })
@staticmethod
def default_active():
return True
@staticmethod @staticmethod
def default_mix_operator(): def default_mix_operator():
return 'all' return 'all'

View File

@ -32,6 +32,26 @@ copyright notices and license terms. -->
<field name="view" ref="view_electronic_mail_filter_form"/> <field name="view" ref="view_electronic_mail_filter_form"/>
<field name="act_window" ref="action_electronic_mail_filter"/> <field name="act_window" ref="action_electronic_mail_filter"/>
</record> </record>
<record model="ir.model.button" id="electronic_mail_test_profile_button">
<field name="name">test_profile</field>
<field name="string">Test Profile</field>
<field name="model" search="[('model', '=', 'electronic.mail.filter')]"/>
</record>
<record model="ir.model.button" id="electronic_mail_send_emails_button">
<field name="name">send_emails</field>
<field name="string">Send emails</field>
<field name="model" search="[('model', '=', 'electronic.mail.filter')]"/>
</record>
<record model="ir.model.button" id="electronic_mail_create_cron_button">
<field name="name">create_cron</field>
<field name="string">Create Cron</field>
<field name="model" search="[('model', '=', 'electronic.mail.filter')]"/>
</record>
<record model="ir.model.button" id="electronic_mail_delete_cron_button">
<field name="name">delete_cron</field>
<field name="string">Delete Cron</field>
<field name="model" search="[('model', '=', 'electronic.mail.filter')]"/>
</record>
<menuitem <menuitem
name="Electronic Mail Filters" name="Electronic Mail Filters"
id="menu_electronic_mail_filter" id="menu_electronic_mail_filter"

View File

@ -12,7 +12,10 @@ try:
except ImportError: except ImportError:
from ConfigParser import ConfigParser from ConfigParser import ConfigParser
MODULE2PREFIX = {} MODULE2PREFIX = {
'electronic_mail_template': 'trytonzz',
'searching': 'trytonzz',
}
def read(fname): def read(fname):
@ -20,6 +23,7 @@ def read(fname):
os.path.join(os.path.dirname(__file__), fname), os.path.join(os.path.dirname(__file__), fname),
'r', encoding='utf-8').read() 'r', encoding='utf-8').read()
def get_require_version(name): def get_require_version(name):
if minor_version % 2: if minor_version % 2:
require = '%s >= %s.%s.dev0, < %s.%s' require = '%s >= %s.%s.dev0, < %s.%s'
@ -29,6 +33,7 @@ def get_require_version(name):
major_version, minor_version + 1) major_version, minor_version + 1)
return require return require
config = ConfigParser() config = ConfigParser()
config.readfp(open('tryton.cfg')) config.readfp(open('tryton.cfg'))
info = dict(config.items('tryton')) info = dict(config.items('tryton'))
@ -40,9 +45,9 @@ major_version, minor_version, _ = version.split('.', 2)
major_version = int(major_version) major_version = int(major_version)
minor_version = int(minor_version) minor_version = int(minor_version)
name = 'trytonzz_electronic_mail_filter' name = 'trytonzz_electronic_mail_filter'
download_url = 'https://bitbucket.org/zikzakmedia/trytond-electronic_mail_filter' download_url = 'https://bitbucket.org/datalife_sco/trytond-electronic_mail_filter'
requires = [] requires = ['emailvalid']
for dep in info.get('depends', []): for dep in info.get('depends', []):
if not re.match(r'(ir|res)(\W|$)', dep): if not re.match(r'(ir|res)(\W|$)', dep):
prefix = MODULE2PREFIX.get(dep, 'trytond') prefix = MODULE2PREFIX.get(dep, 'trytond')
@ -50,7 +55,25 @@ for dep in info.get('depends', []):
requires.append(get_require_version('trytond')) requires.append(get_require_version('trytond'))
tests_require = [] tests_require = []
dependency_links = [] series = '%s.%s' % (major_version, minor_version)
if minor_version % 2:
branch = 'default'
else:
branch = series
dependency_links = [
('hg+https://bitbucket.org/nantic/'
'trytond-electronic_mail_template@%(branch)s'
'#egg=trytonzz_electronic_mail_template-%(series)s' % {
'branch': branch,
'series': series,
}),
('hg+https://bitbucket.org/datalife_sco/'
'trytond-searching@%(branch)s'
'#egg=trytonzz_searching-%(series)s' % {
'branch': branch,
'series': series,
})
]
if minor_version % 2: if minor_version % 2:
# Add development index for testing with proteus # Add development index for testing with proteus
dependency_links.append('https://trydevpi.tryton.org/') dependency_links.append('https://trydevpi.tryton.org/')

View File

@ -1,12 +1,13 @@
[tox] [tox]
envlist = {py27,py33,py34,py35}-{sqlite,postgresql,mysql},pypy-{sqlite,postgresql} envlist = {py27,py34,py35,py36}-{sqlite,postgresql,mysql},pypy-{sqlite,postgresql}
[testenv] [testenv]
commands = {envpython} setup.py test commands = {envpython} setup.py test
deps = deps =
{py27,py33,py34,py35}-postgresql: psycopg2 >= 2.5 {py27,py34,py35,py36}-postgresql: psycopg2 >= 2.5
pypy-postgresql: psycopg2cffi >= 2.5 pypy-postgresql: psycopg2cffi >= 2.5
mysql: MySQL-python mysql: MySQL-python
sqlite: sqlitebck
setenv = setenv =
sqlite: TRYTOND_DATABASE_URI={env:SQLITE_URI:sqlite://} sqlite: TRYTOND_DATABASE_URI={env:SQLITE_URI:sqlite://}
postgresql: TRYTOND_DATABASE_URI={env:POSTGRESQL_URI:postgresql://} postgresql: TRYTOND_DATABASE_URI={env:POSTGRESQL_URI:postgresql://}
@ -14,4 +15,4 @@ setenv =
sqlite: DB_NAME={env:SQLITE_NAME::memory:} sqlite: DB_NAME={env:SQLITE_NAME::memory:}
postgresql: DB_NAME={env:POSTGRESQL_NAME:test} postgresql: DB_NAME={env:POSTGRESQL_NAME:test}
mysql: DB_NAME={env:MYSQL_NAME:test} mysql: DB_NAME={env:MYSQL_NAME:test}
install_command = pip install --pre --find-links https://trydevpi.tryton.org/ {opts} {packages} install_command = pip install --pre --process-dependency-links {opts} {packages}

View File

@ -1,5 +1,5 @@
[tryton] [tryton]
version=4.2.0 version=4.8.0
depends: depends:
ir ir
res res

View File

@ -16,19 +16,19 @@ copyright notices and license terms. -->
<notebook colspan="4"> <notebook colspan="4">
<page string="Profile" id="profile"> <page string="Profile" id="profile">
<field name="profile" colspan="4"/> <field name="profile" colspan="4"/>
<button name="test_profile" string="Test Profile" <button name="test_profile"
icon="tryton-preferences"/> icon="tryton-preferences"/>
<button name="send_emails" string="Send emails" <button name="send_emails"
icon="tryton-mail-message"/> icon="tryton-mail-message"/>
</page> </page>
<page string="Cron" id="cron"> <page string="Cron" id="cron">
<label name="cron"/> <label name="cron"/>
<field name="cron"/> <field name="cron"/>
<group colspan="2" col="2" id="buttons"> <group colspan="2" col="2" id="buttons">
<button name="create_cron" string="Create Cron" <button name="create_cron"
icon="tryton-new" icon="tryton-new"
confirm="Are you sure to create the cron?"/> confirm="Are you sure to create the cron?"/>
<button name="delete_cron" string="Delete Cron" <button name="delete_cron"
icon="tryton-close" icon="tryton-close"
confirm="Are you sure to delete the cron?"/> confirm="Are you sure to delete the cron?"/>
</group> </group>