Update to 4.7

This commit is contained in:
C?dric Krier 2018-02-02 13:13:15 +01:00
parent 8851b6d6dc
commit 7874c4e28e
7 changed files with 122 additions and 27 deletions

49
.drone.yml Normal file
View File

@ -0,0 +1,49 @@
clone:
hg:
image: plugins/hg
pipeline:
tox:
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}"
services:
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

@ -1,13 +1,13 @@
# The COPYRIGHT file at the top level of this repository contains the full
# copyright notices and license terms.
from trytond.pool import Pool
from .stock import *
from . import stock
def register():
Pool.register(
Template,
Lot,
Location,
Move,
stock.Template,
stock.Lot,
stock.Location,
stock.Move,
module='stock_lot_expiry', type_='model')

View File

@ -4,7 +4,11 @@
from setuptools import setup
import re
import os
import ConfigParser
import io
try:
from configparser import ConfigParser
except ImportError:
from ConfigParser import ConfigParser
MODULE = 'stock_lot_expiry'
PREFIX = 'nantic'
@ -12,33 +16,46 @@ MODULE2PREFIX = {}
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
return io.open(
os.path.join(os.path.dirname(__file__), fname),
'r', encoding='utf-8').read()
config = ConfigParser.ConfigParser()
def get_require_version(name):
if minor_version % 2:
require = '%s >= %s.%s.dev0, < %s.%s'
else:
require = '%s >= %s.%s, < %s.%s'
require %= (name, major_version, minor_version,
major_version, minor_version + 1)
return require
config = ConfigParser()
config.readfp(open('tryton.cfg'))
info = dict(config.items('tryton'))
for key in ('depends', 'extras_depend', 'xml'):
if key in info:
info[key] = info[key].strip().splitlines()
major_version, minor_version, _ = info.get('version', '0.0.1').split('.', 2)
version = info.get('version', '0.0.1')
major_version, minor_version, _ = version.split('.', 2)
major_version = int(major_version)
minor_version = int(minor_version)
requires = []
for dep in info.get('depends', []):
if not re.match(r'(ir|res|webdav)(\W|$)', dep):
if not re.match(r'(ir|res)(\W|$)', dep):
prefix = MODULE2PREFIX.get(dep, 'trytond')
requires.append('%s_%s >= %s.%s, < %s.%s' %
(prefix, dep, major_version, minor_version,
major_version, minor_version + 1))
requires.append('trytond >= %s.%s, < %s.%s' %
(major_version, minor_version, major_version, minor_version + 1))
requires.append(get_require_version('%s_%s' % (prefix, dep)))
requires.append(get_require_version('trytond'))
tests_require = ['proteus >= %s.%s, < %s.%s' %
(major_version, minor_version, major_version, minor_version + 1)]
tests_require = [get_require_version('proteus')]
dependency_links = []
if minor_version % 2:
# Add development index for testing with proteus
dependency_links.append('https://trydevpi.tryton.org/')
setup(name='%s_%s' % (PREFIX, MODULE),
version=info.get('version', '0.0.1'),
version=version,
description='Tryton module stock lot expiry',
long_description=read('README'),
author='NaN·tic',
@ -71,12 +88,17 @@ setup(name='%s_%s' % (PREFIX, MODULE),
'Natural Language :: Russian',
'Natural Language :: Spanish',
'Operating System :: OS Independent',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
'Topic :: Office/Business',
],
license='GPL-3',
install_requires=requires,
dependency_links=dependency_links,
zip_safe=False,
entry_points="""
[trytond.modules]
@ -85,4 +107,5 @@ setup(name='%s_%s' % (PREFIX, MODULE),
test_suite='tests',
test_loader='trytond.test_loader:Loader',
tests_require=tests_require,
use_2to3=True,
)

View File

@ -4,14 +4,14 @@ from datetime import date, timedelta
from trytond.model import Workflow, ModelView, fields
from trytond.pool import Pool, PoolMeta
from trytond.pyson import And, Bool, Equal, Eval, If, Not
from trytond.pyson import Bool, Eval, If
from trytond.transaction import Transaction
__all__ = ['Template', 'Lot', 'Location', 'Move']
__metaclass__ = PoolMeta
class Template:
__metaclass__ = PoolMeta
__name__ = 'product.template'
life_time = fields.Integer('Life Time',
@ -28,6 +28,7 @@ class Template:
class Lot:
__metaclass__ = PoolMeta
__name__ = 'stock.lot'
life_date = fields.Date('End of Life Date',
@ -120,6 +121,7 @@ class Lot:
class Location:
__metaclass__ = PoolMeta
__name__ = 'stock.location'
expired = fields.Boolean('Expired Products\' Location',
@ -158,6 +160,7 @@ class Location:
class Move:
__metaclass__ = PoolMeta
__name__ = 'stock.move'
to_location_allow_expired = fields.Function(
@ -168,8 +171,8 @@ class Move:
def __setup__(cls):
super(Move, cls).__setup__()
cls.lot.domain.append(
If(And(Equal(Eval('state', 'draft'), 'draft'),
Not(Bool(Eval('to_location_allow_expired', True)))),
If((Eval('state', 'draft') == 'draft')
& ~Eval('to_location_allow_expired'),
('expired', '=', False),
()),
)
@ -181,7 +184,7 @@ class Move:
Eval('planned_date'))
cls.lot.loading = 'lazy'
for fname in ('state', 'to_location_allow_expired', 'effective_date',
'planned_date'):
if fname not in cls.lot.depends:

View File

@ -1,6 +1,8 @@
# The COPYRIGHT file at the top level of this repository contains the full
# copyright notices and license terms.
from .test_stock_lot_expiry import suite
try:
from trytond.modules.stock_lot_expiry.tests.test_stock_lot_expiry import suite
except ImportError:
from .test_stock_lot_expiry import suite
__all__ = ['suite']

18
tox.ini Normal file
View File

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

View File

@ -1,5 +1,5 @@
[tryton]
version=4.1.0
version=4.7.0
depends:
product
stock_lot