0001-lingo-create-PaymentBackend-objects-32441.patch
combo/apps/lingo/migrations/0034_auto_20190426_1159.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.18 on 2019-04-26 09:59 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 |
import django.db.models.deletion |
|
7 |
import jsonfield.fields |
|
8 | ||
9 | ||
10 |
class Migration(migrations.Migration): |
|
11 | ||
12 |
dependencies = [ |
|
13 |
('lingo', '0033_auto_20181204_2241'), |
|
14 |
] |
|
15 | ||
16 |
operations = [ |
|
17 |
migrations.CreateModel( |
|
18 |
name='PaymentBackend', |
|
19 |
fields=[ |
|
20 |
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
21 |
('label', models.CharField(max_length=64, verbose_name='Label')), |
|
22 |
('slug', models.SlugField(help_text='The identifier is used in webservice calls.', unique=True, verbose_name='Identifier')), |
|
23 |
('service', models.CharField(choices=[(b'dummy', 'Dummy (for tests)'), (b'systempayv2', b'systempay (Banque Populaire)'), (b'sips', 'SIPS (Atos, France)'), (b'sips2', 'SIPS (Atos, other countries)'), (b'spplus', "SP+ (Caisse d'epargne)"), (b'ogone', 'Ingenico (formerly Ogone)'), (b'paybox', 'Paybox'), (b'payzen', 'PayZen'), (b'tipi', 'TIPI')], max_length=64, verbose_name='Payment Service')), |
|
24 |
('service_options', jsonfield.fields.JSONField(blank=True, default=dict, verbose_name='Payment Service Options')), |
|
25 |
], |
|
26 |
), |
|
27 |
migrations.AddField( |
|
28 |
model_name='regie', |
|
29 |
name='payment_backend', |
|
30 |
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='lingo.PaymentBackend'), |
|
31 |
), |
|
32 |
] |
combo/apps/lingo/migrations/0035_auto_20190426_1124.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.18 on 2019-04-26 09:24 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
def create_backends(apps, schema_editor): |
|
9 |
PaymentBackend = apps.get_model('lingo', 'PaymentBackend') |
|
10 |
Regie = apps.get_model('lingo', 'Regie') |
|
11 |
for regie in Regie.objects.all(): |
|
12 |
pb = PaymentBackend( |
|
13 |
label=regie.label, slug=regie.slug, description=regie.description, |
|
14 |
service=regie.service, service_options=regie.service_options) |
|
15 |
pb.save() |
|
16 |
regie.payment_backend = pb |
|
17 |
regie.save() |
|
18 | ||
19 | ||
20 |
class Migration(migrations.Migration): |
|
21 | ||
22 |
dependencies = [ |
|
23 |
('lingo', '0034_auto_20190426_1159'), |
|
24 |
] |
|
25 | ||
26 |
operations = [ |
|
27 |
migrations.RunPython(create_backends), |
|
28 |
] |
combo/apps/lingo/migrations/0036_auto_20190426_1202.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.18 on 2019-04-26 10:02 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 |
import django.db.models.deletion |
|
7 | ||
8 | ||
9 |
class Migration(migrations.Migration): |
|
10 | ||
11 |
dependencies = [ |
|
12 |
('lingo', '0035_auto_20190426_1124'), |
|
13 |
] |
|
14 | ||
15 |
operations = [ |
|
16 |
migrations.RemoveField( |
|
17 |
model_name='regie', |
|
18 |
name='service', |
|
19 |
), |
|
20 |
migrations.RemoveField( |
|
21 |
model_name='regie', |
|
22 |
name='service_options', |
|
23 |
), |
|
24 |
migrations.AlterField( |
|
25 |
model_name='regie', |
|
26 |
name='payment_backend', |
|
27 |
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='lingo.PaymentBackend'), |
|
28 |
), |
|
29 |
] |
combo/apps/lingo/models.py | ||
---|---|---|
85 | 85 |
no_online_payment_reason=data.get('no_online_payment_reason')) |
86 | 86 | |
87 | 87 | |
88 |
@python_2_unicode_compatible |
|
89 |
class PaymentBackend(models.Model): |
|
90 |
label = models.CharField(verbose_name=_('Label'), max_length=64) |
|
91 |
slug = models.SlugField( |
|
92 |
unique=True, verbose_name=_('Identifier'), |
|
93 |
help_text=_('The identifier is used in webservice calls.')) |
|
94 |
service = models.CharField( |
|
95 |
verbose_name=_('Payment Service'), max_length=64, choices=SERVICES) |
|
96 |
service_options = JSONField(blank=True, verbose_name=_('Payment Service Options')) |
|
97 | ||
98 |
def __str__(self): |
|
99 |
return self.label |
|
100 | ||
101 | ||
88 | 102 |
@python_2_unicode_compatible |
89 | 103 |
class Regie(models.Model): |
90 | 104 |
label = models.CharField(verbose_name=_('Label'), max_length=64) |
91 | 105 |
slug = models.SlugField(unique=True, verbose_name=_('Identifier'), |
92 | 106 |
help_text=_('The identifier is used in webservice calls.')) |
93 | 107 |
description = models.TextField(verbose_name=_('Description')) |
94 |
service = models.CharField(verbose_name=_('Payment Service'), |
|
95 |
max_length=64, choices=SERVICES) |
|
96 |
service_options = JSONField(blank=True, |
|
97 |
verbose_name=_('Payment Service Options')) |
|
98 | 108 |
is_default = models.BooleanField(verbose_name=_('Default Regie'), default=False) |
99 | 109 |
webservice_url = models.URLField(_('Webservice URL to retrieve remote items'), |
100 | 110 |
blank=True) |
... | ... | |
106 | 116 |
text_on_success = models.TextField( |
107 | 117 |
verbose_name=_('Custom text displayed on success'), |
108 | 118 |
blank=True, null=True) |
119 |
payment_backend = models.ForeignKey(PaymentBackend, on_delete=models.CASCADE) |
|
109 | 120 | |
110 | 121 |
def is_remote(self): |
111 | 122 |
return self.webservice_url != '' |
112 |
- |