kategorie: sequence-sortierung, rec_name mit/ohne konto-nr,
config: Felder catnamelong+cataccno neu + tests, line: feld category_view neu für spaltenansicht in kassenbuch + tests,
This commit is contained in:
parent
a23407f515
commit
1a85b8e80e
15 changed files with 414 additions and 104 deletions
205
line.py
205
line.py
|
@ -30,91 +30,6 @@ STATES = {
|
|||
DEPENDS=['state', 'state_cashbook']
|
||||
|
||||
|
||||
class LineContext(ModelView):
|
||||
'Line Context'
|
||||
__name__ = 'cashbook.line.context'
|
||||
|
||||
cashbook = fields.Many2One(string='Cashbook', required=True,
|
||||
model_name='cashbook.book',
|
||||
states={
|
||||
'readonly': Eval('num_cashbook', 0) < 2,
|
||||
}, depends=['num_cashbook'])
|
||||
date_from = fields.Date(string='Start Date', depends=['date_to'],
|
||||
domain=[
|
||||
If(Eval('date_to') & Eval('date_from'),
|
||||
('date_from', '<=', Eval('date_to')),
|
||||
()),
|
||||
])
|
||||
date_to = fields.Date(string='End Date', depends=['date_from'],
|
||||
domain=[
|
||||
If(Eval('date_to') & Eval('date_from'),
|
||||
('date_from', '<=', Eval('date_to')),
|
||||
()),
|
||||
])
|
||||
checked = fields.Boolean(string='Checked',
|
||||
help='Show account lines in Checked-state.')
|
||||
done = fields.Boolean(string='Done',
|
||||
help='Show account lines in Done-state.')
|
||||
num_cashbook = fields.Function(fields.Integer(string='Number of Cashbook',
|
||||
readonly=True, states={'invisible': True}),
|
||||
'on_change_with_num_cashbook')
|
||||
|
||||
@classmethod
|
||||
def default_cashbook(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
context = Transaction().context
|
||||
return context.get('cashbook', None)
|
||||
|
||||
@classmethod
|
||||
def default_date_from(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
context = Transaction().context
|
||||
return context.get('date_from', None)
|
||||
|
||||
@classmethod
|
||||
def default_date_to(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
context = Transaction().context
|
||||
return context.get('date_to', None)
|
||||
|
||||
@classmethod
|
||||
def default_checked(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
context = Transaction().context
|
||||
return context.get('checked', False)
|
||||
|
||||
@classmethod
|
||||
def default_num_cashbook(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
CashBook = Pool().get('cashbook.book')
|
||||
|
||||
with Transaction().set_context({
|
||||
'_check_access': True,
|
||||
}):
|
||||
return CashBook.search_count([])
|
||||
|
||||
@classmethod
|
||||
def default_done(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
context = Transaction().context
|
||||
return context.get('done', False)
|
||||
|
||||
def on_change_with_num_cashbook(self, name=None):
|
||||
""" get number of accessible cashbooks,
|
||||
depends on user-permissions
|
||||
"""
|
||||
LineContext = Pool().get('cashbook.line.context')
|
||||
return LineContext.default_num_cashbook()
|
||||
|
||||
# end LineContext
|
||||
|
||||
|
||||
class Line(Workflow, ModelSQL, ModelView):
|
||||
'Cashbook Line'
|
||||
__name__ = 'cashbook.line'
|
||||
|
@ -130,6 +45,8 @@ class Line(Workflow, ModelSQL, ModelView):
|
|||
category = fields.Many2One(string='Category', required=True,
|
||||
model_name='cashbook.category', ondelete='RESTRICT',
|
||||
states=STATES, depends=DEPENDS)
|
||||
category_view = fields.Function(fields.Char(string='Category', readonly=True),
|
||||
'on_change_with_category_view', searcher='search_category_view')
|
||||
state = fields.Selection(string='State', required=True, readonly=True,
|
||||
select=True, selection=sel_linetype)
|
||||
state_string = state.translated('state')
|
||||
|
@ -221,6 +138,39 @@ class Line(Workflow, ModelSQL, ModelView):
|
|||
'desc': (self.description or '-')[:40],
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def order_category_view(tables):
|
||||
""" order: name
|
||||
"""
|
||||
table, _ = tables[None]
|
||||
Category = Pool().get('cashbook.category')
|
||||
tab_cat = Category.__table__()
|
||||
|
||||
tab2 = tab_cat.select(tab_cat.name,
|
||||
where=tab_cat.id==table.category
|
||||
)
|
||||
|
||||
return [tab2]
|
||||
|
||||
@classmethod
|
||||
def search_category_view(cls, name, clause):
|
||||
""" search in category
|
||||
"""
|
||||
return [('category.rec_name',) + tuple(clause[1:])]
|
||||
|
||||
@fields.depends('category')
|
||||
def on_change_with_category_view(self, name=None):
|
||||
""" show optimizef form of category for list-view
|
||||
"""
|
||||
Configuration = Pool().get('cashbook.configuration')
|
||||
if self.category:
|
||||
cfg1 = Configuration.get_singleton()
|
||||
|
||||
if getattr(cfg1, 'catnamelong', True) == True:
|
||||
return self.category.rec_name
|
||||
else :
|
||||
return self.category.get_long_recname(self.category.name)
|
||||
|
||||
@classmethod
|
||||
def search_rec_name(cls, name, clause):
|
||||
""" search in description +...
|
||||
|
@ -306,3 +256,88 @@ class Line(Workflow, ModelSQL, ModelView):
|
|||
return super(Line, cls).delete(lines)
|
||||
|
||||
# end Line
|
||||
|
||||
|
||||
class LineContext(ModelView):
|
||||
'Line Context'
|
||||
__name__ = 'cashbook.line.context'
|
||||
|
||||
cashbook = fields.Many2One(string='Cashbook', required=True,
|
||||
model_name='cashbook.book',
|
||||
states={
|
||||
'readonly': Eval('num_cashbook', 0) < 2,
|
||||
}, depends=['num_cashbook'])
|
||||
date_from = fields.Date(string='Start Date', depends=['date_to'],
|
||||
domain=[
|
||||
If(Eval('date_to') & Eval('date_from'),
|
||||
('date_from', '<=', Eval('date_to')),
|
||||
()),
|
||||
])
|
||||
date_to = fields.Date(string='End Date', depends=['date_from'],
|
||||
domain=[
|
||||
If(Eval('date_to') & Eval('date_from'),
|
||||
('date_from', '<=', Eval('date_to')),
|
||||
()),
|
||||
])
|
||||
checked = fields.Boolean(string='Checked',
|
||||
help='Show account lines in Checked-state.')
|
||||
done = fields.Boolean(string='Done',
|
||||
help='Show account lines in Done-state.')
|
||||
num_cashbook = fields.Function(fields.Integer(string='Number of Cashbook',
|
||||
readonly=True, states={'invisible': True}),
|
||||
'on_change_with_num_cashbook')
|
||||
|
||||
@classmethod
|
||||
def default_cashbook(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
context = Transaction().context
|
||||
return context.get('cashbook', None)
|
||||
|
||||
@classmethod
|
||||
def default_date_from(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
context = Transaction().context
|
||||
return context.get('date_from', None)
|
||||
|
||||
@classmethod
|
||||
def default_date_to(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
context = Transaction().context
|
||||
return context.get('date_to', None)
|
||||
|
||||
@classmethod
|
||||
def default_checked(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
context = Transaction().context
|
||||
return context.get('checked', False)
|
||||
|
||||
@classmethod
|
||||
def default_num_cashbook(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
CashBook = Pool().get('cashbook.book')
|
||||
|
||||
with Transaction().set_context({
|
||||
'_check_access': True,
|
||||
}):
|
||||
return CashBook.search_count([])
|
||||
|
||||
@classmethod
|
||||
def default_done(cls):
|
||||
""" get default from context
|
||||
"""
|
||||
context = Transaction().context
|
||||
return context.get('done', False)
|
||||
|
||||
def on_change_with_num_cashbook(self, name=None):
|
||||
""" get number of accessible cashbooks,
|
||||
depends on user-permissions
|
||||
"""
|
||||
LineContext = Pool().get('cashbook.line.context')
|
||||
return LineContext.default_num_cashbook()
|
||||
|
||||
# end LineContext
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue