def membership_fees_json(): return jsonify(items=[ { 'name': localized(membership_fee.name), 'regular_fee': money_filter( membership_fee.regular_fee), 'payment_deadline': membership_fee.payment_deadline.days, 'payment_deadline_final': membership_fee.payment_deadline_final.days, 'begins_on': date_filter(membership_fee.begins_on), 'ends_on': date_filter(membership_fee.ends_on), 'finance_link': {'href': url_for(".transactions_all", filter="all", after=membership_fee.begins_on, before=membership_fee.ends_on), 'title': 'Finanzübersicht', 'icon': 'glyphicon-euro'}, 'book_link': {'href': url_for(".membership_fee_book", fee_id=membership_fee.id), 'title': 'Buchen', 'icon': 'glyphicon-book'}, 'edit_link': {'href': url_for(".membership_fee_edit", fee_id=membership_fee.id), 'title': 'Bearbeiten', 'icon': 'glyphicon-edit'}, } for membership_fee in MembershipFee.q.order_by(MembershipFee.begins_on.desc()).all()])
def _format_row(split, style, prefix=None): row = { 'posted_at': datetime_filter(split.transaction.posted_at), # 'posted_by': (split.transaction.author.id, split.transaction.author.name), 'valid_on': date_filter(split.transaction.valid_on), 'description': { 'href': url_for("finance.transactions_show", transaction_id=split.transaction_id), 'title': localized(split.transaction.description) if split.transaction.description else 'Keine Beschreibung', **({ 'empty': True } if not split.transaction.description else {}), }, 'amount': { 'value': money_filter(-split.amount) if (style == "inverted") else money_filter(split.amount), 'is_positive': (split.amount > 0) ^ (style == "inverted"), }, 'row_positive': (split.amount > 0) ^ (style == "inverted"), } if prefix is None: return row return {'{}_{}'.format(prefix, key): val for key, val in row.items()}
def _format_row(split, style, prefix=None): T = FinanceTable row = { 'posted_at': datetime_filter(split.transaction.posted_at), # 'posted_by': (split.transaction.author.id, split.transaction.author.name), 'valid_on': date_filter(split.transaction.valid_on), 'description': T.description.value( href=url_for("finance.transactions_show", transaction_id=split.transaction_id), title=localized(split.transaction.description) if split.transaction.description else 'Keine Beschreibung'), 'amount': T.amount.value( value=money_filter(-split.amount) if (style == "inverted") else money_filter(split.amount), is_positive=(split.amount > 0) ^ (style == "inverted"), ), 'row_positive': (split.amount > 0) ^ (style == "inverted"), } if prefix is None: return row return {f'{prefix}_{key}': val for key, val in row.items()}
def date_format(dt, default=None): """ Format date or datetime objects for `table.dateFormatter`. :param datetime|date|None dt: a date or datetime object or None :param str|None default: formatted value to use if `dt` is None :return: """ if dt is not None: return { 'formatted': date_filter(dt), 'timestamp': int(datetime.combine(dt, utc.time_min()).timestamp()), } else: return { 'formatted': default if default is not None else date_filter(None), 'timestamp': None, }
def membership_fees_json(): return jsonify(items=[ { 'name': localized(membership_fee.name), 'regular_fee': money_filter(membership_fee.regular_fee), 'payment_deadline': membership_fee.payment_deadline.days, 'payment_deadline_final': membership_fee.payment_deadline_final.days, 'begins_on': date_filter(membership_fee.begins_on), 'ends_on': date_filter(membership_fee.ends_on), 'finance_link': { 'href': url_for(".transactions_all", filter="all", after=membership_fee.begins_on, before=membership_fee.ends_on), 'title': 'Finanzübersicht', 'icon': 'glyphicon-euro' }, 'book_link': { 'href': url_for(".membership_fee_book", fee_id=membership_fee.id), 'title': 'Buchen', 'icon': 'glyphicon-book' }, 'edit_link': { 'href': url_for(".membership_fee_edit", fee_id=membership_fee.id), 'title': 'Bearbeiten', 'icon': 'glyphicon-edit' }, } for membership_fee in MembershipFee.q.order_by( MembershipFee.begins_on.desc()).all() ])
def bank_accounts_activities_json(): limit = request.args.get('limit', default=100, type=int) offset = request.args.get('offset', default=0, type=int) if privilege_check(current_user, 'finance_change'): def actions(activity_id): return [{ 'href': url_for('.bank_account_activities_edit', activity_id=activity_id), 'title': '', 'btn_class': 'btn-primary', 'icon': 'glyphicon-pencil' }] else: def actions(activity_id): return [] activity_q = (BankAccountActivity.q.options( joinedload(BankAccountActivity.bank_account)).filter( BankAccountActivity.transaction_id == None).order_by( BankAccountActivity.valid_on)) return jsonify( items={ 'total': activity_q.count(), 'rows': [ { 'bank_account': activity.bank_account.name, 'valid_on': date_filter(activity.valid_on), 'amount': money_filter(activity.amount), 'reference': activity.reference, 'original_reference': activity.original_reference, 'ktonr': activity.other_account_number, # 'blz': activity.other_bank, # todo revisit. wuzdat? dunno… 'name': activity.other_name, 'actions': actions(activity.id), } for activity in activity_q.limit(limit).offset(offset).all() ] })
def _format_row(split, style, prefix=None): row = { 'posted_at': datetime_filter(split.transaction.posted_at), #'posted_by': (split.transaction.author.id, split.transaction.author.name), 'valid_on': date_filter(split.transaction.valid_on), 'description': { 'href': url_for( "finance.transactions_show", transaction_id=split.transaction_id ), 'title': localized(split.transaction.description) }, 'amount': { 'value': money_filter(-split.amount) if (style == "inverted") else money_filter(split.amount), 'is_positive': (split.amount > 0) ^ (style == "inverted"), }, 'row_positive': (split.amount > 0) ^ (style == "inverted"), } if prefix is None: return row return {'{}_{}'.format(prefix, key): val for key, val in row.items()}
def bank_accounts_activities_json(): limit = request.args.get('limit', default=100, type=int) offset = request.args.get('offset', default=0, type=int) if privilege_check(current_user, 'finance_change'): def actions(activity_id): return [{ 'href': url_for( '.bank_account_activities_edit', activity_id=activity_id), 'title': '', 'btn_class': 'btn-primary', 'icon': 'glyphicon-pencil' }] else: def actions(activity_id): return [] activity_q = (BankAccountActivity.q .options(joinedload(BankAccountActivity.bank_account)) .filter(BankAccountActivity.transaction_id == None) .order_by(BankAccountActivity.valid_on)) return jsonify(items={ 'total': activity_q.count(), 'rows': [{ 'bank_account': activity.bank_account.name, 'valid_on': date_filter(activity.valid_on), 'amount': money_filter(activity.amount), 'reference': activity.reference, 'original_reference': activity.original_reference, 'ktonr': activity.other_account_number, # 'blz': activity.other_bank, # todo revisit. wuzdat? dunno… 'name': activity.other_name, 'actions': actions(activity.id), } for activity in activity_q.limit(limit).offset(offset).all()] })