This commit is contained in:
parent
f07e55fe3e
commit
c40f5a22ec
|
@ -22,6 +22,7 @@ Depends: graphviz,
|
||||||
python3-django-ckeditor,
|
python3-django-ckeditor,
|
||||||
python3-django-ratelimit,
|
python3-django-ratelimit,
|
||||||
python3-dnspython,
|
python3-dnspython,
|
||||||
|
python3-emoji,
|
||||||
python3-hobo,
|
python3-hobo,
|
||||||
python3-lasso,
|
python3-lasso,
|
||||||
python3-lxml,
|
python3-lxml,
|
||||||
|
|
1
setup.py
1
setup.py
|
@ -203,6 +203,7 @@ setup(
|
||||||
'requests',
|
'requests',
|
||||||
'setproctitle',
|
'setproctitle',
|
||||||
'phonenumbers',
|
'phonenumbers',
|
||||||
|
'emoji',
|
||||||
],
|
],
|
||||||
package_dir={'wcs': 'wcs'},
|
package_dir={'wcs': 'wcs'},
|
||||||
packages=find_packages(),
|
packages=find_packages(),
|
||||||
|
|
|
@ -4,6 +4,7 @@ import shutil
|
||||||
|
|
||||||
import mechanize
|
import mechanize
|
||||||
import pytest
|
import pytest
|
||||||
|
from pyquery import PyQuery
|
||||||
from quixote import cleanup, get_response
|
from quixote import cleanup, get_response
|
||||||
from quixote.http_request import parse_query
|
from quixote.http_request import parse_query
|
||||||
|
|
||||||
|
@ -1409,3 +1410,26 @@ def test_condition_widget_no_python():
|
||||||
assert widget.get_error() == "syntax error: Could not parse the remainder: '{{' from '{{'"
|
assert widget.get_error() == "syntax error: Could not parse the remainder: '{{' from '{{'"
|
||||||
|
|
||||||
pub.site_options.set('options', 'disable-python-expressions', 'false')
|
pub.site_options.set('options', 'disable-python-expressions', 'false')
|
||||||
|
|
||||||
|
|
||||||
|
def test_emoji_button():
|
||||||
|
# textual button
|
||||||
|
form = Form(use_tokens=False)
|
||||||
|
form.add_submit('submit', 'Submit')
|
||||||
|
assert PyQuery(str(form.render()))('button').attr.name == 'submit'
|
||||||
|
assert not PyQuery(str(form.render()))('button').attr['aria-label']
|
||||||
|
assert PyQuery(str(form.render()))('button').text() == 'Submit'
|
||||||
|
|
||||||
|
# emoji + text
|
||||||
|
form = Form(use_tokens=False)
|
||||||
|
form.add_submit('submit', '✅ Submit')
|
||||||
|
assert PyQuery(str(form.render()))('button').attr.name == 'submit'
|
||||||
|
assert PyQuery(str(form.render()))('button').attr['aria-label'] == 'Submit'
|
||||||
|
assert PyQuery(str(form.render()))('button').text() == '✅ Submit'
|
||||||
|
|
||||||
|
# single emoji (do not do this) (no empty aria-label)
|
||||||
|
form = Form(use_tokens=False)
|
||||||
|
form.add_submit('submit', '✅')
|
||||||
|
assert PyQuery(str(form.render()))('button').attr.name == 'submit'
|
||||||
|
assert not PyQuery(str(form.render()))('button').attr['aria-label']
|
||||||
|
assert PyQuery(str(form.render()))('button').text() == '✅'
|
||||||
|
|
|
@ -37,6 +37,7 @@ from functools import partial
|
||||||
import dns
|
import dns
|
||||||
import dns.exception
|
import dns.exception
|
||||||
import dns.resolver
|
import dns.resolver
|
||||||
|
import emoji
|
||||||
from bleach import Cleaner
|
from bleach import Cleaner
|
||||||
from bleach.linkifier import LinkifyFilter
|
from bleach.linkifier import LinkifyFilter
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
@ -208,10 +209,14 @@ class SubmitWidget(quixote.form.widget.SubmitWidget):
|
||||||
def render_content(self):
|
def render_content(self):
|
||||||
if self.name in ('cancel', 'previous', 'save-draft'):
|
if self.name in ('cancel', 'previous', 'save-draft'):
|
||||||
self.attrs['formnovalidate'] = 'formnovalidate'
|
self.attrs['formnovalidate'] = 'formnovalidate'
|
||||||
value = htmlescape(self.label) if self.label else None
|
label = self.label or ''
|
||||||
|
if label and 'aria-label' not in self.attrs:
|
||||||
|
cleaned_label = emoji.replace_emoji(label, replace='').strip()
|
||||||
|
if cleaned_label and cleaned_label != label:
|
||||||
|
self.attrs['aria-label'] = cleaned_label
|
||||||
return (
|
return (
|
||||||
htmltag('button', name=self.name, value=value, **self.attrs)
|
htmltag('button', name=self.name, value=htmlescape(label), **self.attrs)
|
||||||
+ str(self.label)
|
+ str(label)
|
||||||
+ htmltext('</button>')
|
+ htmltext('</button>')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue