From 4cf25a1bca8d4a3fea6ff8656ea088d5016bfb5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laur=C3=A9line=20Gu=C3=A9rin?= Date: Tue, 19 Jul 2022 08:15:39 +0200 Subject: [PATCH] pricing: new home page, change some urls and breadcrumbs (#67196) --- lingo/manager/static/css/style.scss | 42 ++++++++++ .../manager/templates/lingo/manager_base.html | 7 +- .../templates/lingo/manager_homepage.html | 3 +- .../lingo/pricing/manager_agenda_list.html | 3 +- .../pricing/manager_check_type_list.html | 2 +- .../lingo/pricing/manager_criteria_list.html | 2 +- .../templates/lingo/pricing/manager_home.html | 45 ++++++++++ .../lingo/pricing/manager_pricing_list.html | 11 +-- lingo/pricing/urls.py | 25 +++--- lingo/pricing/views.py | 10 ++- tests/pricing/manager/test_agenda.py | 2 +- tests/pricing/manager/test_checktype.py | 2 +- tests/pricing/manager/test_import_export.py | 6 +- tests/pricing/manager/test_pricing.py | 83 ++++++++++--------- 14 files changed, 169 insertions(+), 74 deletions(-) create mode 100644 lingo/pricing/templates/lingo/pricing/manager_home.html diff --git a/lingo/manager/static/css/style.scss b/lingo/manager/static/css/style.scss index 1fb43fc..e1aeb0c 100644 --- a/lingo/manager/static/css/style.scss +++ b/lingo/manager/static/css/style.scss @@ -1,3 +1,5 @@ +$mobile-limit: 760px; + li span.identifier { font-size: 80%; opacity: 0.6; @@ -22,6 +24,46 @@ div.paragraph { } } +a.button.button-paragraph { + text-align: left; + box-sizing: border-box; + display: block; + max-width: 100%; + margin-bottom: 1rem; +} + +a.button.button-paragraph p { + font-weight: normal; + color: #333; + margin: 0; + line-height: 150%; +} + +a.button.button-paragraph p:last-child { + padding-bottom: 5px; +} + +a.button.button-paragraph:hover p { + color: white; +} + +#lingo-manager-main { + background: none bottom right no-repeat; + // TODO background-image + min-height: 80vh; + background-size: 600px auto; + @media screen and (max-width: 1200px) { + background-size: 100% auto; + } + width: 99%; + height: 90%; + @media screen and (max-width: $mobile-limit) { + background: none !important; + min-height: 0; + height: auto; + } +} + .sortable { span.handle { cursor: move; diff --git a/lingo/manager/templates/lingo/manager_base.html b/lingo/manager/templates/lingo/manager_base.html index c28d9be..c0835b3 100644 --- a/lingo/manager/templates/lingo/manager_base.html +++ b/lingo/manager/templates/lingo/manager_base.html @@ -1,7 +1,12 @@ {% extends "lingo/base.html" %} -{% load static %} +{% load i18n static %} {% block extrascripts %} {{ block.super }} {% endblock %} + +{% block breadcrumb %} +{{ block.super }} +{% trans "Payments" %} +{% endblock %} diff --git a/lingo/manager/templates/lingo/manager_homepage.html b/lingo/manager/templates/lingo/manager_homepage.html index c65cc43..8490e01 100644 --- a/lingo/manager/templates/lingo/manager_homepage.html +++ b/lingo/manager/templates/lingo/manager_homepage.html @@ -1,8 +1,9 @@ {% extends "lingo/base.html" %} {% load i18n %} + {% block appbar %}

{% trans 'Payments' %}

- {% trans 'Pricing' context 'pricing' %} + {% trans 'Pricing' context 'pricing' %} {% endblock %} diff --git a/lingo/pricing/templates/lingo/pricing/manager_agenda_list.html b/lingo/pricing/templates/lingo/pricing/manager_agenda_list.html index 64ea632..1ad35b2 100644 --- a/lingo/pricing/templates/lingo/pricing/manager_agenda_list.html +++ b/lingo/pricing/templates/lingo/pricing/manager_agenda_list.html @@ -1,4 +1,4 @@ -{% extends "lingo/pricing/manager_pricing_list.html" %} +{% extends "lingo/pricing/manager_home.html" %} {% load i18n %} {% block breadcrumb %} @@ -10,7 +10,6 @@

{% trans 'Agendas' %}

{% trans 'Refresh agendas' %} - {% trans 'Check types' %} {% endblock %} diff --git a/lingo/pricing/templates/lingo/pricing/manager_check_type_list.html b/lingo/pricing/templates/lingo/pricing/manager_check_type_list.html index 61effaa..e8e8456 100644 --- a/lingo/pricing/templates/lingo/pricing/manager_check_type_list.html +++ b/lingo/pricing/templates/lingo/pricing/manager_check_type_list.html @@ -1,4 +1,4 @@ -{% extends "lingo/pricing/manager_agenda_list.html" %} +{% extends "lingo/pricing/manager_home.html" %} {% load i18n %} {% block breadcrumb %} diff --git a/lingo/pricing/templates/lingo/pricing/manager_criteria_list.html b/lingo/pricing/templates/lingo/pricing/manager_criteria_list.html index 02a21eb..2ba6cfa 100644 --- a/lingo/pricing/templates/lingo/pricing/manager_criteria_list.html +++ b/lingo/pricing/templates/lingo/pricing/manager_criteria_list.html @@ -1,4 +1,4 @@ -{% extends "lingo/pricing/manager_pricing_list.html" %} +{% extends "lingo/pricing/manager_home.html" %} {% load i18n %} {% block breadcrumb %} diff --git a/lingo/pricing/templates/lingo/pricing/manager_home.html b/lingo/pricing/templates/lingo/pricing/manager_home.html new file mode 100644 index 0000000..cae2514 --- /dev/null +++ b/lingo/pricing/templates/lingo/pricing/manager_home.html @@ -0,0 +1,45 @@ +{% extends "lingo/manager_base.html" %} +{% load i18n %} + +{% block breadcrumb %} +{{ block.super }} +{% trans "Pricing" context 'pricing' %} +{% endblock %} + +{% block appbar %} +

{% trans 'Pricing' context 'pricing' %}

+ + + + +{% endblock %} + +{% block content %} +
+ +
+{% endblock %} diff --git a/lingo/pricing/templates/lingo/pricing/manager_pricing_list.html b/lingo/pricing/templates/lingo/pricing/manager_pricing_list.html index d5281ac..4986939 100644 --- a/lingo/pricing/templates/lingo/pricing/manager_pricing_list.html +++ b/lingo/pricing/templates/lingo/pricing/manager_pricing_list.html @@ -1,21 +1,14 @@ -{% extends "lingo/manager_base.html" %} +{% extends "lingo/pricing/manager_home.html" %} {% load i18n %} {% block breadcrumb %} {{ block.super }} -{% trans "Pricing" context 'pricing' %} +{% trans "Pricing models" %} {% endblock %} {% block appbar %}

{% trans 'Pricing' context 'pricing' %}

- - - {% trans 'Agendas' %} - {% trans 'Criterias' %} {% trans 'New pricing model' %} {% endblock %} diff --git a/lingo/pricing/urls.py b/lingo/pricing/urls.py index a7f4167..df77bbf 100644 --- a/lingo/pricing/urls.py +++ b/lingo/pricing/urls.py @@ -19,61 +19,62 @@ from django.conf.urls import url from . import views urlpatterns = [ - url(r'^$', views.pricing_list, name='lingo-manager-pricing-list'), + url(r'^$', views.home, name='lingo-manager-pricing-home'), url(r'^import/$', views.config_import, name='lingo-manager-pricing-config-import'), url(r'^export/$', views.config_export, name='lingo-manager-pricing-config-export'), + url(r'^models/$', views.pricing_list, name='lingo-manager-pricing-list'), url( - r'^add/$', + r'^model/add/$', views.pricing_add, name='lingo-manager-pricing-add', ), url( - r'^(?P\d+)/$', + r'^model/(?P\d+)/$', views.pricing_detail, name='lingo-manager-pricing-detail', ), url( - r'^(?P\d+)/edit/$', + r'^model/(?P\d+)/edit/$', views.pricing_edit, name='lingo-manager-pricing-edit', ), url( - r'^(?P\d+)/delete/$', + r'^model/(?P\d+)/delete/$', views.pricing_delete, name='lingo-manager-pricing-delete', ), url( - r'^(?P\d+)/duplicate/$', + r'^model/(?P\d+)/duplicate/$', views.pricing_duplicate, name='lingo-manager-pricing-duplicate', ), url( - r'^(?P\d+)/export/$', + r'^model/(?P\d+)/export/$', views.pricing_export, name='lingo-manager-pricing-export', ), url( - r'^(?P\d+)/variable/$', + r'^model/(?P\d+)/variable/$', views.pricing_variable_edit, name='lingo-manager-pricing-variable-edit', ), url( - r'^(?P\d+)/category/add/$', + r'^model/(?P\d+)/category/add/$', views.pricing_criteria_category_add, name='lingo-manager-pricing-criteria-category-add', ), url( - r'^(?P\d+)/category/(?P\d+)/edit/$', + r'^model/(?P\d+)/category/(?P\d+)/edit/$', views.pricing_criteria_category_edit, name='lingo-manager-pricing-criteria-category-edit', ), url( - r'^(?P\d+)/category/(?P\d+)/delete/$', + r'^model/(?P\d+)/category/(?P\d+)/delete/$', views.pricing_criteria_category_delete, name='lingo-manager-pricing-criteria-category-delete', ), url( - r'^(?P\d+)/order/$', + r'^model/(?P\d+)/order/$', views.pricing_criteria_category_order, name='lingo-manager-pricing-criteria-category-order', ), diff --git a/lingo/pricing/views.py b/lingo/pricing/views.py index dfc440d..300dc2c 100644 --- a/lingo/pricing/views.py +++ b/lingo/pricing/views.py @@ -35,6 +35,7 @@ from django.views.generic import ( FormView, ListView, RedirectView, + TemplateView, UpdateView, ) from django.views.generic.detail import SingleObjectMixin @@ -62,6 +63,13 @@ from lingo.pricing.utils import export_site, import_site from lingo.utils.misc import AgendaImportError +class HomeView(TemplateView): + template_name = 'lingo/pricing/manager_home.html' + + +home = HomeView.as_view() + + class ConfigExportView(FormView): form_class = ExportForm template_name = 'lingo/pricing/export.html' @@ -82,7 +90,7 @@ config_export = ConfigExportView.as_view() class ConfigImportView(FormView): form_class = ImportForm template_name = 'lingo/pricing/import.html' - success_url = reverse_lazy('lingo-manager-pricing-list') + success_url = reverse_lazy('lingo-manager-pricing-home') def form_valid(self, form): try: diff --git a/tests/pricing/manager/test_agenda.py b/tests/pricing/manager/test_agenda.py index 0c7e2c3..4a025d4 100644 --- a/tests/pricing/manager/test_agenda.py +++ b/tests/pricing/manager/test_agenda.py @@ -86,7 +86,7 @@ def test_add_agenda_pricing(app, admin_user): resp = app.get('/manage/pricing/agenda/%s/' % agenda.pk) assert AgendaPricing.objects.filter(agenda=agenda, pricing=pricing).count() == 2 - assert resp.text.count('"/manage/pricing/%s/"' % pricing.pk) == 2 + assert resp.text.count('"/manage/pricing/model/%s/"' % pricing.pk) == 2 resp = app.get('/manage/pricing/agenda/%s/pricing/add/' % agenda.pk) # starts on last date_end diff --git a/tests/pricing/manager/test_checktype.py b/tests/pricing/manager/test_checktype.py index d442030..e7d54b0 100644 --- a/tests/pricing/manager/test_checktype.py +++ b/tests/pricing/manager/test_checktype.py @@ -8,7 +8,7 @@ pytestmark = pytest.mark.django_db def test_add_group(app, admin_user): app = login(app) - resp = app.get('/manage/pricing/agendas/') + resp = app.get('/manage/pricing/') resp = resp.click('Check types') resp = resp.click('New group') resp.form['label'] = 'Foo bar' diff --git a/tests/pricing/manager/test_import_export.py b/tests/pricing/manager/test_import_export.py index d50ab9b..869254a 100644 --- a/tests/pricing/manager/test_import_export.py +++ b/tests/pricing/manager/test_import_export.py @@ -58,7 +58,7 @@ def test_import_pricing(app, admin_user): pricing = Pricing.objects.create(label='Model') app = login(app) - resp = app.get('/manage/pricing/%s/export/' % pricing.id) + resp = app.get('/manage/pricing/model/%s/export/' % pricing.pk) assert resp.headers['content-type'] == 'application/json' assert resp.headers['content-disposition'] == 'attachment; filename="export_pricing_model_20210708.json"' pricing_export = resp.text @@ -68,7 +68,7 @@ def test_import_pricing(app, admin_user): resp = resp.click('Import') resp.form['config_json'] = Upload('export.json', pricing_export.encode('utf-8'), 'application/json') resp = resp.form.submit() - assert resp.location.endswith('/manage/pricing/%s/' % pricing.pk) + assert resp.location.endswith('/manage/pricing/model/%s/' % pricing.pk) resp = resp.follow() assert 'No pricing model created. A pricing model has been updated.' not in resp.text assert Pricing.objects.count() == 1 @@ -80,7 +80,7 @@ def test_import_pricing(app, admin_user): resp.form['config_json'] = Upload('export.json', pricing_export.encode('utf-8'), 'application/json') resp = resp.form.submit() pricing = Pricing.objects.latest('pk') - assert resp.location.endswith('/manage/pricing/%s/' % pricing.pk) + assert resp.location.endswith('/manage/pricing/model/%s/' % pricing.pk) resp = resp.follow() assert 'A pricing model has been created. No pricing model updated.' not in resp.text assert Pricing.objects.count() == 1 diff --git a/tests/pricing/manager/test_pricing.py b/tests/pricing/manager/test_pricing.py index 3dbc373..d8dc187 100644 --- a/tests/pricing/manager/test_pricing.py +++ b/tests/pricing/manager/test_pricing.py @@ -13,11 +13,12 @@ def test_add_pricing(app, admin_user): app = login(app) resp = app.get('/manage/') resp = resp.click('Pricing') + resp = resp.click(href='/manage/pricing/models/') resp = resp.click('New pricing model') resp.form['label'] = 'Pricing model for lunch' resp = resp.form.submit() pricing = Pricing.objects.latest('pk') - assert resp.location.endswith('/manage/pricing/%s/' % pricing.pk) + assert resp.location.endswith('/manage/pricing/model/%s/' % pricing.pk) assert pricing.label == 'Pricing model for lunch' assert pricing.slug == 'pricing-model-for-lunch' @@ -26,10 +27,10 @@ def test_detail_pricing(app, admin_user): pricing = Pricing.objects.create(label='Model') app = login(app) - resp = app.get('/manage/pricing/') - resp = resp.click(href='/manage/pricing/%s/' % pricing.pk) - assert '/manage/pricing/%s/edit/' % pricing.pk in resp - assert '/manage/pricing/%s/delete/' % pricing.pk in resp + resp = app.get('/manage/pricing/models/') + resp = resp.click(href='/manage/pricing/model/%s/' % pricing.pk) + assert '/manage/pricing/model/%s/edit/' % pricing.pk in resp + assert '/manage/pricing/model/%s/delete/' % pricing.pk in resp agenda = Agenda.objects.create(label='Foo Bar') AgendaPricing.objects.create( @@ -44,7 +45,7 @@ def test_detail_pricing(app, admin_user): date_start=datetime.date(year=2022, month=9, day=1), date_end=datetime.date(year=2023, month=9, day=1), ) - resp = app.get('/manage/pricing/%s/' % pricing.pk) + resp = app.get('/manage/pricing/model/%s/' % pricing.pk) assert resp.text.count('"/manage/pricing/agenda/%s/"' % agenda.pk) == 1 @@ -53,8 +54,8 @@ def test_edit_pricing(app, admin_user): pricing2 = Pricing.objects.create(label='Model 2') app = login(app) - resp = app.get('/manage/pricing/%s/' % pricing.pk) - resp = resp.click(href='/manage/pricing/%s/edit/' % pricing.pk) + resp = app.get('/manage/pricing/model/%s/' % pricing.pk) + resp = resp.click(href='/manage/pricing/model/%s/edit/' % pricing.pk) resp.form['label'] = 'Model Foo' resp.form['slug'] = pricing2.slug resp = resp.form.submit() @@ -62,7 +63,7 @@ def test_edit_pricing(app, admin_user): resp.form['slug'] = 'foo-bar' resp = resp.form.submit() - assert resp.location.endswith('/manage/pricing/%s/' % pricing.pk) + assert resp.location.endswith('/manage/pricing/model/%s/' % pricing.pk) pricing.refresh_from_db() assert pricing.label == 'Model Foo' assert pricing.slug == 'foo-bar' @@ -72,10 +73,10 @@ def test_delete_pricing(app, admin_user): pricing = Pricing.objects.create(label='Model') app = login(app) - resp = app.get('/manage/pricing/%s/' % pricing.pk) - resp = resp.click(href='/manage/pricing/%s/delete/' % pricing.pk) + resp = app.get('/manage/pricing/model/%s/' % pricing.pk) + resp = resp.click(href='/manage/pricing/model/%s/delete/' % pricing.pk) resp = resp.form.submit() - assert resp.location.endswith('/manage/pricing/') + assert resp.location.endswith('/manage/pricing/models/') assert Pricing.objects.exists() is False @@ -84,19 +85,19 @@ def test_duplicate_pricing(app, admin_user): assert Pricing.objects.count() == 1 app = login(app) - resp = app.get('/manage/pricing/%s/' % pricing.pk) - resp = resp.click(href='/manage/pricing/%s/duplicate/' % pricing.pk) + resp = app.get('/manage/pricing/model/%s/' % pricing.pk) + resp = resp.click(href='/manage/pricing/model/%s/duplicate/' % pricing.pk) resp = resp.form.submit() assert Pricing.objects.count() == 2 new_pricing = Pricing.objects.latest('pk') - assert resp.location == '/manage/pricing/%s/' % new_pricing.pk + assert resp.location == '/manage/pricing/model/%s/' % new_pricing.pk assert new_pricing.pk != pricing.pk resp = resp.follow() assert 'copy-of-model' in resp.text - resp = resp.click(href='/manage/pricing/%s/duplicate/' % new_pricing.pk) + resp = resp.click(href='/manage/pricing/model/%s/duplicate/' % new_pricing.pk) resp.form['label'] = 'hop' resp = resp.form.submit().follow() assert 'hop' in resp.text @@ -107,9 +108,9 @@ def test_pricing_edit_extra_variables(app, admin_user): assert pricing.extra_variables == {} app = login(app) - resp = app.get('/manage/pricing/%s/' % pricing.id) + resp = app.get('/manage/pricing/model/%s/' % pricing.pk) assert '' not in resp.text - resp = resp.click(href='/manage/pricing/%s/variable/' % pricing.id) + resp = resp.click(href='/manage/pricing/model/%s/variable/' % pricing.pk) resp.form['form-0-key'] = 'foo' resp.form['form-0-value'] = 'bar' resp = resp.form.submit().follow() @@ -118,7 +119,7 @@ def test_pricing_edit_extra_variables(app, admin_user): assert '' in resp.text assert 'foo' in resp - resp = resp.click(href='/manage/pricing/%s/variable/' % pricing.id) + resp = resp.click(href='/manage/pricing/model/%s/variable/' % pricing.pk) assert resp.form['form-TOTAL_FORMS'].value == '2' assert resp.form['form-0-key'].value == 'foo' assert resp.form['form-0-value'].value == 'bar' @@ -135,7 +136,7 @@ def test_pricing_edit_extra_variables(app, admin_user): } assert 'blah, foo' in resp - resp = resp.click(href='/manage/pricing/%s/variable/' % pricing.id) + resp = resp.click(href='/manage/pricing/model/%s/variable/' % pricing.pk) assert resp.form['form-TOTAL_FORMS'].value == '3' assert resp.form['form-0-key'].value == 'blah' assert resp.form['form-0-value'].value == 'baz' @@ -162,8 +163,8 @@ def test_pricing_add_category(app, admin_user): category4 = CriteriaCategory.objects.create(label='Cat 4') app = login(app) - resp = app.get('/manage/pricing/%s/' % pricing.pk) - resp = resp.click(href='/manage/pricing/%s/category/add/' % pricing.pk) + resp = app.get('/manage/pricing/model/%s/' % pricing.pk) + resp = resp.click(href='/manage/pricing/model/%s/category/add/' % pricing.pk) assert list(resp.context['form'].fields['category'].queryset) == [ category1, category2, @@ -172,9 +173,9 @@ def test_pricing_add_category(app, admin_user): ] resp.form['category'] = category1.pk resp = resp.form.submit() - assert resp.location.endswith('/manage/pricing/%s/' % pricing.pk) + assert resp.location.endswith('/manage/pricing/model/%s/' % pricing.pk) resp = resp.follow() - assert '/manage/pricing/%s/category/add/' % pricing.pk in resp + assert '/manage/pricing/model/%s/category/add/' % pricing.pk in resp assert list( PricingCriteriaCategory.objects.filter(pricing=pricing).values_list('category', flat=True) ) == [category1.pk] @@ -182,7 +183,7 @@ def test_pricing_add_category(app, admin_user): 1 ] - resp = app.get('/manage/pricing/%s/category/add/' % pricing.pk) + resp = app.get('/manage/pricing/model/%s/category/add/' % pricing.pk) assert list(resp.context['form'].fields['category'].queryset) == [category2, category3, category4] resp.form['category'] = category4.pk resp = resp.form.submit().follow() @@ -194,11 +195,11 @@ def test_pricing_add_category(app, admin_user): 2, ] - resp = app.get('/manage/pricing/%s/category/add/' % pricing.pk) + resp = app.get('/manage/pricing/model/%s/category/add/' % pricing.pk) assert list(resp.context['form'].fields['category'].queryset) == [category2, category3] resp.form['category'] = category2.pk resp = resp.form.submit().follow() - assert '/manage/pricing/%s/category/add/' % pricing.pk not in resp + assert '/manage/pricing/model/%s/category/add/' % pricing.pk not in resp assert list( PricingCriteriaCategory.objects.filter(pricing=pricing).values_list('category', flat=True) ) == [category1.pk, category4.pk, category2.pk] @@ -208,7 +209,7 @@ def test_pricing_add_category(app, admin_user): 3, ] - app.get('/manage/pricing/%s/category/add/' % pricing.pk, status=404) + app.get('/manage/pricing/model/%s/category/add/' % pricing.pk, status=404) def test_pricing_edit_category(app, admin_user): @@ -224,8 +225,8 @@ def test_pricing_edit_category(app, admin_user): pricing.categories.add(category2, through_defaults={'order': 2}) app = login(app) - resp = app.get('/manage/pricing/%s/' % pricing.pk) - resp = resp.click(href='/manage/pricing/%s/category/%s/edit/' % (pricing.pk, category1.pk)) + resp = app.get('/manage/pricing/model/%s/' % pricing.pk) + resp = resp.click(href='/manage/pricing/model/%s/category/%s/edit/' % (pricing.pk, category1.pk)) assert list(resp.context['form'].fields['criterias'].queryset) == [ criteria1, criteria2, @@ -235,17 +236,17 @@ def test_pricing_edit_category(app, admin_user): assert list(resp.context['form'].initial['criterias']) == [] resp.form['criterias'] = [criteria1.pk, criteria3.pk] resp = resp.form.submit() - assert resp.location.endswith('/manage/pricing/%s/' % pricing.pk) + assert resp.location.endswith('/manage/pricing/model/%s/' % pricing.pk) resp = resp.follow() assert list(pricing.criterias.order_by('pk')) == [criteria1, criteria3] - resp = app.get('/manage/pricing/%s/category/%s/edit/' % (pricing.pk, category1.pk)) + resp = app.get('/manage/pricing/model/%s/category/%s/edit/' % (pricing.pk, category1.pk)) assert list(resp.context['form'].initial['criterias']) == [criteria1, criteria3] resp.form['criterias'] = [criteria1.pk, criteria4.pk] resp = resp.form.submit().follow() assert list(pricing.criterias.order_by('pk')) == [criteria1, criteria4] - resp = app.get('/manage/pricing/%s/category/%s/edit/' % (pricing.pk, category2.pk)) + resp = app.get('/manage/pricing/model/%s/category/%s/edit/' % (pricing.pk, category2.pk)) assert list(resp.context['form'].fields['criterias'].queryset) == [criteria5] assert list(resp.context['form'].initial['criterias']) == [] resp.form['criterias'] = [criteria5.pk] @@ -264,18 +265,18 @@ def test_pricing_delete_category(app, admin_user): pricing.criterias.add(criteria1, criteria2) app = login(app) - resp = app.get('/manage/pricing/%s/' % pricing.pk) - resp = resp.click(href='/manage/pricing/%s/category/%s/delete/' % (pricing.pk, category1.pk)) + resp = app.get('/manage/pricing/model/%s/' % pricing.pk) + resp = resp.click(href='/manage/pricing/model/%s/category/%s/delete/' % (pricing.pk, category1.pk)) resp = resp.form.submit() - assert resp.location.endswith('/manage/pricing/%s/' % pricing.pk) + assert resp.location.endswith('/manage/pricing/model/%s/' % pricing.pk) resp = resp.follow() assert list(pricing.categories.all()) == [category2] assert list(pricing.criterias.all()) == [criteria2] # not linked - app.get('/manage/pricing/%s/category/%s/delete/' % (pricing.pk, category1.pk), status=404) + app.get('/manage/pricing/model/%s/category/%s/delete/' % (pricing.pk, category1.pk), status=404) # unknown - app.get('/manage/pricing/%s/category/%s/delete/' % (pricing.pk, 0), status=404) + app.get('/manage/pricing/model/%s/category/%s/delete/' % (pricing.pk, 0), status=404) def test_pricing_reorder_categories(app, admin_user): @@ -298,7 +299,7 @@ def test_pricing_reorder_categories(app, admin_user): app = login(app) # missing get params - app.get('/manage/pricing/%s/order/' % (pricing.pk), status=400) + app.get('/manage/pricing/model/%s/order/' % (pricing.pk), status=400) # bad new-order param bad_params = [ @@ -314,7 +315,7 @@ def test_pricing_reorder_categories(app, admin_user): ] for bad_param in bad_params: app.get( - '/manage/pricing/%s/order/' % (pricing.pk), + '/manage/pricing/model/%s/order/' % (pricing.pk), params={'new-order': bad_param}, status=400, ) @@ -330,7 +331,7 @@ def test_pricing_reorder_categories(app, admin_user): # change order app.get( - '/manage/pricing/%s/order/' % (pricing.pk), + '/manage/pricing/model/%s/order/' % (pricing.pk), params={'new-order': ','.join(str(x) for x in [category3.pk, category1.pk, category2.pk])}, ) assert list(