kopia lustrzana https://github.com/wagtail/wagtail
Refactor email/external link chooser views (no functional changes)
rodzic
f45181764b
commit
239145290f
|
|
@ -1,7 +1,4 @@
|
|||
function(modal) {
|
||||
modal.respond('pageChosen', {
|
||||
'url': '{{ url|escapejs }}',
|
||||
'title': '{{ link_text|escapejs }}'
|
||||
});
|
||||
modal.respond('pageChosen', {{ result_json|safe }});
|
||||
modal.close();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -319,15 +319,15 @@ class TestChooserExternalLink(TestCase, WagtailTestUtils):
|
|||
response = self.post({'url': 'http://www.example.com/', 'link_text': 'example'})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "'onload'") # indicates success / post back to calling page
|
||||
self.assertContains(response, "'url': 'http://www.example.com/'")
|
||||
self.assertContains(response, "'title': 'example'") # When link text is given, it is used
|
||||
self.assertContains(response, '"url": "http://www.example.com/"')
|
||||
self.assertContains(response, '"title": "example"') # When link text is given, it is used
|
||||
|
||||
def test_create_link_without_text(self):
|
||||
response = self.post({'url': 'http://www.example.com/'})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "'onload'") # indicates success / post back to calling page
|
||||
self.assertContains(response, "'url': 'http://www.example.com/'")
|
||||
self.assertContains(response, "'title': 'http://www.example.com/'") # When no text is given, it uses the url
|
||||
self.assertContains(response, '"url": "http://www.example.com/"')
|
||||
self.assertContains(response, '"title": "http://www.example.com/"') # When no text is given, it uses the url
|
||||
|
||||
def test_invalid_url(self):
|
||||
response = self.post({'url': 'ntp://www.example.com', 'link_text': 'example'})
|
||||
|
|
@ -339,8 +339,8 @@ class TestChooserExternalLink(TestCase, WagtailTestUtils):
|
|||
response = self.post({'url': '/admin/', 'link_text': 'admin'})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "'onload'") # indicates success / post back to calling page
|
||||
self.assertContains(response, "'url': '/admin/',")
|
||||
self.assertContains(response, "'title': 'admin'")
|
||||
self.assertContains(response, '"url": "/admin/"')
|
||||
self.assertContains(response, '"title": "admin"')
|
||||
|
||||
|
||||
class TestChooserEmailLink(TestCase, WagtailTestUtils):
|
||||
|
|
@ -363,10 +363,10 @@ class TestChooserEmailLink(TestCase, WagtailTestUtils):
|
|||
|
||||
def test_create_link(self):
|
||||
request = self.post({'email_address': 'example@example.com', 'link_text': 'contact'})
|
||||
self.assertContains(request, "'url': 'mailto:example@example.com',")
|
||||
self.assertContains(request, "'title': 'contact'") # When link text is given, it is used
|
||||
self.assertContains(request, '"url": "mailto:example@example.com"')
|
||||
self.assertContains(request, '"title": "contact"') # When link text is given, it is used
|
||||
|
||||
def test_create_link_without_text(self):
|
||||
request = self.post({'email_address': 'example@example.com'})
|
||||
self.assertContains(request, "'url': 'mailto:example@example.com',")
|
||||
self.assertContains(request, "'title': 'example@example.com'") # When no link text is given, it uses the email
|
||||
self.assertContains(request, '"url": "mailto:example@example.com"')
|
||||
self.assertContains(request, '"title": "example@example.com"') # When no link text is given, it uses the email
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
import json
|
||||
|
||||
from django.http import Http404
|
||||
from django.shortcuts import get_object_or_404, render
|
||||
|
||||
|
|
@ -149,23 +151,29 @@ def search(request, parent_page_id=None):
|
|||
|
||||
|
||||
def external_link(request):
|
||||
link_text = request.GET.get('link_text', '')
|
||||
link_url = request.GET.get('link_url', '')
|
||||
initial_data = {
|
||||
'url': request.GET.get('link_url', ''),
|
||||
'link_text': request.GET.get('link_text', ''),
|
||||
}
|
||||
|
||||
if request.method == 'POST':
|
||||
form = ExternalLinkChooserForm(request.POST)
|
||||
form = ExternalLinkChooserForm(request.POST, initial=initial_data)
|
||||
|
||||
if form.is_valid():
|
||||
result = {
|
||||
'url': form.cleaned_data['url'],
|
||||
'title': form.cleaned_data['link_text'].strip() or form.cleaned_data['url'],
|
||||
}
|
||||
|
||||
return render_modal_workflow(
|
||||
request,
|
||||
None, 'wagtailadmin/chooser/external_link_chosen.js',
|
||||
{
|
||||
'url': form.cleaned_data['url'],
|
||||
'link_text': form.cleaned_data['link_text'].strip() or form.cleaned_data['url']
|
||||
'result_json': json.dumps(result),
|
||||
}
|
||||
)
|
||||
else:
|
||||
form = ExternalLinkChooserForm(initial={'url': link_url, 'link_text': link_text})
|
||||
form = ExternalLinkChooserForm(initial=initial_data)
|
||||
|
||||
return render_modal_workflow(
|
||||
request,
|
||||
|
|
@ -177,23 +185,28 @@ def external_link(request):
|
|||
|
||||
|
||||
def email_link(request):
|
||||
link_text = request.GET.get('link_text', '')
|
||||
link_url = request.GET.get('link_url', '')
|
||||
initial_data = {
|
||||
'link_text': request.GET.get('link_text', ''),
|
||||
'email_address': request.GET.get('link_url', ''),
|
||||
}
|
||||
|
||||
if request.method == 'POST':
|
||||
form = EmailLinkChooserForm(request.POST)
|
||||
form = EmailLinkChooserForm(request.POST, initial=initial_data)
|
||||
|
||||
if form.is_valid():
|
||||
result = {
|
||||
'url': 'mailto:' + form.cleaned_data['email_address'],
|
||||
'title': form.cleaned_data['link_text'].strip() or form.cleaned_data['email_address'],
|
||||
}
|
||||
return render_modal_workflow(
|
||||
request,
|
||||
None, 'wagtailadmin/chooser/external_link_chosen.js',
|
||||
{
|
||||
'url': 'mailto:' + form.cleaned_data['email_address'],
|
||||
'link_text': form.cleaned_data['link_text'].strip() or form.cleaned_data['email_address']
|
||||
'result_json': json.dumps(result),
|
||||
}
|
||||
)
|
||||
else:
|
||||
form = EmailLinkChooserForm(initial={'email_address': link_url, 'link_text': link_text})
|
||||
form = EmailLinkChooserForm(initial=initial_data)
|
||||
|
||||
return render_modal_workflow(
|
||||
request,
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue