add field 'target' for category/cashbook in list view
This commit is contained in:
parent
acc8911a8d
commit
be92110ae1
5 changed files with 59 additions and 7 deletions
|
@ -302,6 +302,10 @@ msgctxt "help:cashbook.planner,wfcheck:"
|
|||
msgid "Switches the booking to the 'Verified' state."
|
||||
msgstr "Schaltet die Buchung in den Zustand 'Geprüft'"
|
||||
|
||||
msgctxt "field:cashbook.planner,booking_target:"
|
||||
msgid "Target"
|
||||
msgstr "Ziel"
|
||||
|
||||
|
||||
############################
|
||||
# cashbook.planner.nextrun #
|
||||
|
|
|
@ -278,6 +278,10 @@ msgctxt "help:cashbook.planner,wfcheck:"
|
|||
msgid "Switches the booking to the 'Verified' state."
|
||||
msgstr "Switches the booking to the 'Verified' state."
|
||||
|
||||
msgctxt "field:cashbook.planner,booking_target:"
|
||||
msgid "Target"
|
||||
msgstr "Target"
|
||||
|
||||
msgctxt "model:cashbook.planner.nextrun,name:"
|
||||
msgid "Next Execution Date"
|
||||
msgstr "Next Execution Date"
|
||||
|
|
35
planner.py
35
planner.py
|
@ -148,6 +148,9 @@ class ScheduledBooking(DeactivableMixin, ModelSQL, ModelView):
|
|||
wfcheck = fields.Boolean(
|
||||
string="Set to 'Checked'",
|
||||
help="Switches the booking to the 'Verified' state.")
|
||||
booking_target = fields.Function(fields.Reference(
|
||||
string='Target', selection='get_booking_modelnames', readonly=True),
|
||||
'on_change_with_booking_target')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
|
@ -249,6 +252,38 @@ class ScheduledBooking(DeactivableMixin, ModelSQL, ModelView):
|
|||
break
|
||||
return result
|
||||
|
||||
@classmethod
|
||||
def get_booking_modelnames(cls):
|
||||
""" get list of model for field 'booking_target
|
||||
|
||||
Returns:
|
||||
list: list of tuple: (model_name, Description)
|
||||
"""
|
||||
Model = Pool().get('ir.model')
|
||||
return [
|
||||
(x.model, x.name)
|
||||
for x in Model.search([
|
||||
('model', 'in', ['cashbook.book', 'cashbook.category'])])]
|
||||
|
||||
@fields.depends('bookingtype', 'category', 'booktransf')
|
||||
def on_change_with_booking_target(self, name=None):
|
||||
""" get category of target-cashbook
|
||||
|
||||
Args:
|
||||
name (str, optional): name of field. Defaults to None.
|
||||
|
||||
Returns:
|
||||
tuple: tuple with model-name and id of booking-target
|
||||
"""
|
||||
if self.bookingtype in ['in', 'out']:
|
||||
if self.category:
|
||||
return '%s,%d' % (
|
||||
self.category.__name__, self.category.id)
|
||||
elif self.bookingtype in ['mvin', 'mvout']:
|
||||
if self.booktransf:
|
||||
return '%s,%d' % (
|
||||
self.booktransf.__name__, self.booktransf.id)
|
||||
|
||||
@fields.depends('cashbook', '_parent_cashbook.currency')
|
||||
def on_change_with_currency_cashbook(self, name=None):
|
||||
""" get currency of selected cashbook
|
||||
|
|
|
@ -137,6 +137,7 @@ class PlannerTestCase(object):
|
|||
Planner.write,
|
||||
*[[job], {'end_date': date(2022, 5, 1)}])
|
||||
|
||||
self.assertEqual(job.booking_target.name, 'Cat1')
|
||||
Planner.write(*[[job], {
|
||||
'end_date': date(2022, 9, 15), 'monthday': 3}])
|
||||
self.assertEqual(
|
||||
|
@ -466,6 +467,7 @@ class PlannerTestCase(object):
|
|||
self.assertEqual(job.cashbook.rec_name, 'Book 1 | 0.00 usd | Open')
|
||||
self.assertEqual(job.booktransf.rec_name, 'Book 2 | 0.00 usd | Open')
|
||||
self.assertEqual(len(job.cashbook.lines), 0)
|
||||
self.assertEqual(job.booking_target.name, 'Book 2')
|
||||
|
||||
job, = Planner.search([])
|
||||
self.assertEqual(job.nextrun[0].date, date(2022, 6, 1))
|
||||
|
|
|
@ -5,11 +5,18 @@ full copyright notices and license terms. -->
|
|||
<tree>
|
||||
<field name="active"/>
|
||||
<field name="name"/>
|
||||
<field name="cashbook"/>
|
||||
<field name="nextrun_link"/>
|
||||
<field name="bookingtype"/>
|
||||
<field name="amount"/>
|
||||
<field name="category"/>
|
||||
<field name="party"/>
|
||||
<field name="booktransf"/>
|
||||
|
||||
<field name="start_date" optional="1"/>
|
||||
<field name="end_date" optional="1"/>
|
||||
<field name="frequ" optional="1"/>
|
||||
<field name="weekday" optional="1"/>
|
||||
<field name="interval" optional="1"/>
|
||||
<field name="wfcheck" optional="1"/>
|
||||
|
||||
<field name="cashbook" optional="0"/>
|
||||
<field name="nextrun_link" optional="0"/>
|
||||
<field name="amount" optional="0"/>
|
||||
<field name="bookingtype" optional="0"/>
|
||||
<field name="booking_target" optional="0"/>
|
||||
<field name="party" optional="0"/>
|
||||
</tree>
|
||||
|
|
Loading…
Reference in a new issue