Banktransfer: Save imported date into CharField, date format autodetection never works

This commit is contained in:
Raphael Michel
2016-09-08 22:24:31 +02:00
parent 54d5477069
commit 833c31022f
5 changed files with 36 additions and 14 deletions

View File

@@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2016-09-08 20:20
from __future__ import unicode_literals
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('banktransfer', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='bankimportjob',
name='state',
field=models.CharField(choices=[('pending', 'pending'), ('running', 'running'), ('error', 'error'), ('completed', 'completed')], default='pending', max_length=32),
),
migrations.AlterField(
model_name='banktransaction',
name='date',
field=models.CharField(max_length=50),
),
migrations.AlterField(
model_name='banktransaction',
name='import_job',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='transactions', to='banktransfer.BankImportJob'),
),
]

View File

@@ -48,7 +48,7 @@ class BankTransaction(models.Model):
payer = models.TextField(blank=True) payer = models.TextField(blank=True)
reference = models.TextField(blank=True) reference = models.TextField(blank=True)
amount = models.DecimalField(max_digits=10, decimal_places=2) amount = models.DecimalField(max_digits=10, decimal_places=2)
date = models.DateField() date = models.CharField(max_length=50)
order = models.ForeignKey('pretixbase.Order', null=True, blank=True) order = models.ForeignKey('pretixbase.Order', null=True, blank=True)
def calculate_checksum(self): def calculate_checksum(self):
@@ -57,7 +57,7 @@ class BankTransaction(models.Model):
hasher.update(clean.sub('', self.payer.lower()).encode('utf-8')) hasher.update(clean.sub('', self.payer.lower()).encode('utf-8'))
hasher.update(clean.sub('', self.reference.lower()).encode('utf-8')) hasher.update(clean.sub('', self.reference.lower()).encode('utf-8'))
hasher.update(clean.sub('', str(self.amount).lower()).encode('utf-8')) hasher.update(clean.sub('', str(self.amount).lower()).encode('utf-8'))
hasher.update(clean.sub('', str(self.date).lower()).encode('utf-8')) hasher.update(clean.sub('', self.date.lower()).encode('utf-8'))
return str(hasher.hexdigest()) return str(hasher.hexdigest())
def shred_private_data(self): def shred_private_data(self):

View File

@@ -1,10 +1,3 @@
table.transaction-list td.actions { table.transaction-list td.actions {
max-width: 100px; width: 100px;
}
table.transaction-list td.actions .input-group {
display: inline-block;
width: 110px;
}
table.transaction-list td.actions .input-group button {
line-height: 1.43;
} }

View File

@@ -3,7 +3,6 @@ import logging
import re import re
from decimal import Decimal from decimal import Decimal
import dateutil.parser
from django.conf import settings from django.conf import settings
from django.db import transaction from django.db import transaction
from django.utils.translation import ugettext_noop from django.utils.translation import ugettext_noop
@@ -73,12 +72,11 @@ def _get_unknown_transactions(event: Event, job: BankImportJob, data: list):
logger.exception('Could not parse amount of transaction: {}'.format(amount)) logger.exception('Could not parse amount of transaction: {}'.format(amount))
amount = Decimal("0.00") amount = Decimal("0.00")
date = dateutil.parser.parse(row['date'])
trans = BankTransaction(event=event, import_job=job, trans = BankTransaction(event=event, import_job=job,
payer=row['payer'], payer=row['payer'],
reference=row['reference'], reference=row['reference'],
amount=amount, amount=amount,
date=date) date=row['date'])
trans.checksum = trans.calculate_checksum() trans.checksum = trans.calculate_checksum()
if trans.checksum not in known_checksums: if trans.checksum not in known_checksums:
trans.state = BankTransaction.STATE_UNCHECKED trans.state = BankTransaction.STATE_UNCHECKED

View File

@@ -53,7 +53,7 @@
</div> </div>
{% endif %} {% endif %}
</td> </td>
<td>{{ trans.date|date:"SHORT_DATE_FORMAT" }}</td> <td>{{ trans.date }}</td>
<td>{{ trans.payer }}<br/>{{ trans.reference }}</td> <td>{{ trans.payer }}<br/>{{ trans.reference }}</td>
<td>{{ trans.amount|floatformat:2 }}</td> <td>{{ trans.amount|floatformat:2 }}</td>
<td> <td>