utiliser un attribut data-id pour les listes réordonnables (plutôt que l'id de l'élément) (#10225) #337
|
@ -474,7 +474,7 @@ def test_card_delete_field_existing_data(pub):
|
|||
assert 'You are about to remove the "1st field" field.' in resp.text
|
||||
assert 'Warning: this field data will be permanently deleted from existing cards.' in resp.text
|
||||
resp = resp.forms[0].submit()
|
||||
assert resp.location == 'http://example.net/backoffice/cards/1/fields/#itemId_2'
|
||||
assert resp.location == 'http://example.net/backoffice/cards/1/fields/#fieldId_2'
|
||||
resp = resp.follow()
|
||||
carddef.refresh_from_storage()
|
||||
assert len(carddef.fields) == 1
|
||||
|
|
|
@ -1570,7 +1570,7 @@ def test_form_delete_field_existing_data(pub):
|
|||
assert 'You are about to remove the "1st field" field.' in resp.text
|
||||
assert 'Warning: this field data will be permanently deleted from existing forms.' in resp.text
|
||||
resp = resp.forms[0].submit()
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_2'
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#fieldId_2'
|
||||
resp = resp.follow()
|
||||
assert len(FormDef.get(1).fields) == 1
|
||||
|
||||
|
@ -1648,7 +1648,7 @@ def test_form_duplicate_field(pub):
|
|||
assert '1st field' in resp.text
|
||||
|
||||
resp = resp.click(href='1/duplicate')
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_2'
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#fieldId_2'
|
||||
resp = resp.follow()
|
||||
assert len(FormDef.get(1).fields) == 2
|
||||
assert FormDef.get(1).fields[0].label == '1st field'
|
||||
|
@ -1792,7 +1792,7 @@ def test_form_duplicate_file_field(pub):
|
|||
assert 'foobar' in resp.text
|
||||
|
||||
resp = resp.click(href='%s/duplicate' % FormDef.get(formdef.id).fields[0].id)
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_2'
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#fieldId_2'
|
||||
resp = resp.follow()
|
||||
|
||||
|
||||
|
@ -1812,14 +1812,14 @@ def test_form_edit_field(pub):
|
|||
assert '1st field' in resp.text
|
||||
|
||||
resp = resp.click('Edit', href='1/')
|
||||
assert '/backoffice/forms/1/fields/#itemId_1' in resp
|
||||
assert '/backoffice/forms/1/fields/#fieldId_1' in resp
|
||||
assert resp.pyquery('.field-edit--title').text() == '1st field'
|
||||
assert resp.pyquery('.field-edit--subtitle').text() == 'Text (line)'
|
||||
assert resp.forms[0]['label'].value == '1st field'
|
||||
resp.forms[0]['label'] = 'changed field'
|
||||
resp.forms[0]['required'] = False
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_1'
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#fieldId_1'
|
||||
|
||||
assert FormDef.get(1).fields[0].label == 'changed field'
|
||||
assert FormDef.get(1).fields[0].required is False
|
||||
|
@ -1851,7 +1851,7 @@ def test_form_edit_field_advanced(pub):
|
|||
resp.forms[0]['prefill$type'] = 'String / Template'
|
||||
resp.forms[0]['prefill$value_string'] = 'test'
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_1'
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#fieldId_1'
|
||||
resp = resp.follow()
|
||||
|
||||
assert FormDef.get(formdef.id).fields[0].prefill == {'type': 'string', 'value': 'test', 'locked': False}
|
||||
|
@ -1893,7 +1893,7 @@ def test_form_edit_field_advanced(pub):
|
|||
resp.forms[0]['prefill$type'] = 'User Field'
|
||||
resp.forms[0]['prefill$value_string'] = 'email'
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_2'
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#fieldId_2'
|
||||
resp = resp.follow()
|
||||
assert "Are you sure you want to prefill" not in resp.text
|
||||
|
||||
|
@ -2128,7 +2128,7 @@ def test_form_edit_item_field(pub):
|
|||
assert 'items$element1' in resp.form.fields
|
||||
# but don't fill anything
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_1'
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#fieldId_1'
|
||||
resp = resp.follow()
|
||||
|
||||
assert FormDef.get(1).fields[0].label == 'changed field'
|
||||
|
@ -2140,7 +2140,7 @@ def test_form_edit_item_field(pub):
|
|||
assert resp.forms[0]['label'].value == 'changed field'
|
||||
resp.forms[0]['items$element0'] = 'XXX'
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_1'
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#fieldId_1'
|
||||
assert FormDef.get(1).fields[0].items == ['XXX']
|
||||
|
||||
|
||||
|
@ -2521,7 +2521,7 @@ def test_form_edit_items_field(pub):
|
|||
assert 'items$element1' in resp.form.fields
|
||||
# but don't fill anything
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_1'
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#fieldId_1'
|
||||
resp = resp.follow()
|
||||
|
||||
assert FormDef.get(1).fields[0].label == 'changed field'
|
||||
|
@ -2537,7 +2537,7 @@ def test_form_edit_items_field(pub):
|
|||
resp.forms[0]['min_choices'] = 2
|
||||
resp.forms[0]['max_choices'] = 5
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_1'
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/#fieldId_1'
|
||||
assert FormDef.get(1).fields[0].items == ['XXX']
|
||||
assert FormDef.get(1).fields[0].min_choices == 2
|
||||
assert FormDef.get(1).fields[0].max_choices == 5
|
||||
|
@ -2963,12 +2963,12 @@ def test_form_limit_display_to_page(pub):
|
|||
# remove field on current page
|
||||
resp = resp.click(href='5/delete')
|
||||
resp = resp.forms[0].submit()
|
||||
assert resp.location == 'http://example.net/backoffice/forms/%s/fields/pages/4/#itemId_4' % formdef.id
|
||||
assert resp.location == 'http://example.net/backoffice/forms/%s/fields/pages/4/#fieldId_4' % formdef.id
|
||||
resp = resp.follow()
|
||||
# remove current page itself
|
||||
resp = resp.click(href='4/delete')
|
||||
resp = resp.forms[0].submit()
|
||||
assert resp.location == 'http://example.net/backoffice/forms/%s/fields/#itemId_3' % formdef.id
|
||||
assert resp.location == 'http://example.net/backoffice/forms/%s/fields/#fieldId_3' % formdef.id
|
||||
|
||||
# visit a page that doesn't exist
|
||||
app.get('/backoffice/forms/1/fields/pages/123/', status=404)
|
||||
|
@ -3613,7 +3613,7 @@ def test_form_preview_edit_page_fields(pub):
|
|||
resp = resp.click('edit page fields', index=0)
|
||||
assert '<h2>form title - page 1 - first page</h2>' in resp.text
|
||||
resp = resp.click('Edit', index=0)
|
||||
assert '/backoffice/forms/1/fields/pages/1/#itemId_1' in resp
|
||||
assert '/backoffice/forms/1/fields/pages/1/#fieldId_1' in resp
|
||||
assert '/backoffice/forms/1/fields/pages/1/1/' in resp # without anchor
|
||||
|
||||
|
||||
|
|
|
@ -2735,7 +2735,7 @@ def test_workflows_create_formdata(pub):
|
|||
resp = app.get('/backoffice/workflows/%s/status/%s/' % (wf.id, st2.id))
|
||||
pq = resp.pyquery.remove_namespaces()
|
||||
assert pq('option[value="New Form Creation"]').text() == 'New Form Creation'
|
||||
assert pq('#itemId__create_formdata a')[0].text == 'New Form Creation (target form)'
|
||||
assert pq('[data-id="_create_formdata"] a')[0].text == 'New Form Creation (target form)'
|
||||
|
||||
resp = resp.click(
|
||||
'Edit',
|
||||
|
|
|
@ -33,7 +33,7 @@ from wcs.qommon.form import FileWidget, Form, HtmlWidget, SingleSelectWidget, Sl
|
|||
|
||||
class BlockFieldDefPage(FieldDefPage):
|
||||
def redirect_field_anchor(self, field):
|
||||
anchor = '#itemId_%s' % field.id if field else ''
|
||||
anchor = '#fieldId_%s' % field.id if field else ''
|
||||
return redirect('../%s' % anchor)
|
||||
|
||||
def schedule_statistics_data_update(self):
|
||||
|
|
|
@ -51,7 +51,7 @@ class FieldDefPage(Directory):
|
|||
last_breadcrumb_url_part, last_breadcrumb_label = get_response().breadcrumb[-1]
|
||||
get_response().breadcrumb = get_response().breadcrumb[:-1]
|
||||
get_response().breadcrumb.append(
|
||||
(last_breadcrumb_url_part + '#itemId_' + field_id, last_breadcrumb_label)
|
||||
(last_breadcrumb_url_part + '#fieldId_' + field_id, last_breadcrumb_label)
|
||||
)
|
||||
get_response().breadcrumb.append((field_id + '/', label))
|
||||
|
||||
|
@ -72,7 +72,7 @@ class FieldDefPage(Directory):
|
|||
old_display_locations = (self.field.display_locations or []).copy()
|
||||
|
||||
if form.get_submit() == 'cancel':
|
||||
return redirect('../#itemId_%s' % self.field.id)
|
||||
return redirect('../#fieldId_%s' % self.field.id)
|
||||
|
||||
if form.get_widget('items') and form.get_widget('items').get_widget('add_element').parse():
|
||||
form.clear_errors()
|
||||
|
@ -131,7 +131,7 @@ class FieldDefPage(Directory):
|
|||
)
|
||||
return redirect('..')
|
||||
|
||||
return redirect('../#itemId_%s' % self.field.id)
|
||||
return redirect('../#fieldId_%s' % self.field.id)
|
||||
|
||||
def schedule_statistics_data_update(self):
|
||||
get_response().add_after_job(UpdateStatisticsDataAfterJob(formdefs=[self.objectdef]))
|
||||
|
@ -148,7 +148,7 @@ class FieldDefPage(Directory):
|
|||
return _('Warning: this field data will be permanently deleted.')
|
||||
|
||||
def redirect_field_anchor(self, field):
|
||||
anchor = '#itemId_%s' % field.id if field else ''
|
||||
anchor = '#fieldId_%s' % field.id if field else ''
|
||||
if self.page_id:
|
||||
# check page_id is (still) a valid page number
|
||||
if self.page_id in (x.id for x in self.objectdef.fields):
|
||||
|
@ -409,7 +409,11 @@ class FieldsDirectory(Directory):
|
|||
current_page_no += 1
|
||||
on_page = bool(str(field.id) == self.page_id)
|
||||
|
||||
li_attrs = {'id': 'itemId_%s' % field.id, 'class': 'biglistitem type-%s' % field.key}
|
||||
li_attrs = {
|
||||
'id': 'fieldId_%s' % field.id,
|
||||
'data-id': str(field.id),
|
||||
'class': 'biglistitem type-%s' % field.key,
|
||||
}
|
||||
if self.page_id and not on_page:
|
||||
li_attrs['style'] = 'display: none;'
|
||||
if self.page_id and field.key == 'page':
|
||||
|
|
|
@ -1394,7 +1394,7 @@ class GlobalActionPage(WorkflowStatusPage):
|
|||
r += htmltext('</p>')
|
||||
r += htmltext('<ul id="items-list" class="biglist sortable">')
|
||||
for item in self.action.items:
|
||||
r += htmltext('<li class="biglistitem" id="itemId_%s">') % item.id
|
||||
r += htmltext('<li class="biglistitem" data-id="%s">') % item.id
|
||||
if self.workflow.is_readonly():
|
||||
r += str(item.render_as_line())
|
||||
else:
|
||||
|
|
|
@ -46,8 +46,8 @@ $(document).ready(
|
|||
items = $(ui.item).parent().find('li');
|
||||
for (i=0; i < items.length; i++) {
|
||||
var item = items[i];
|
||||
var item_id = item.id.substr(7, 50);
|
||||
if (item_id.length) {
|
||||
var item_id = item.dataset.id;
|
||||
if (item_id !== undefined) {
|
||||
result += item_id + ';';
|
||||
}
|
||||
if ($(item).find('span.page-no').length) {
|
||||
|
@ -57,7 +57,7 @@ $(document).ready(
|
|||
}
|
||||
$move_page_field.dialog('close');
|
||||
var order_function = $(this).data('order-function') || 'update_order';
|
||||
$.post(order_function, {'order': result, 'element': $(ui.item)[0].id.substr(7, 50)})
|
||||
$.post(order_function, {'order': result, 'element': $(ui.item)[0].dataset.id})
|
||||
.done(function(data) {
|
||||
if (data['success'] != "ok") return;
|
||||
if (!data['additional-action']) return;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
{% if categories %}
|
||||
<ul class="biglist sortable" id="category-list">
|
||||
{% for category in categories %}
|
||||
<li class="biglistitem" id="itemId_{{ category.id }}">
|
||||
<li class="biglistitem" data-id="{{ category.id }}">
|
||||
<a href="{{ category.id }}/">
|
||||
{% include 'wcs/backoffice/includes/application_icons.html' with object=category %}
|
||||
{{ category.name }}
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<ul id="items-list" class="biglist sortable">
|
||||
{% endif %}
|
||||
{% for item in status.items %}
|
||||
<li class="biglistitem" id="itemId_{{ item.id }}">
|
||||
<li class="biglistitem" data-id="{{ item.id }}">
|
||||
<a href="items/{{ item.id }}/">{{ item.render_as_line }}</a>
|
||||
<p class="commands">
|
||||
{% with item.get_target_status_url as url %}
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
{% spaceless %}
|
||||
{% for status in workflow.possible_status %}
|
||||
<li class="biglistitem {% if status.get_visibility_restricted_roles %}hidden-status{% endif %}"
|
||||
id="itemId_{{ status.id }}">
|
||||
data-id="{{ status.id }}">
|
||||
<a href="status/{{ status.id }}/" {% if status.colour %}style="border-color: #{{status.colour}}"{% endif %}
|
||||
>{{ status.name }}</a></li>
|
||||
{% endfor %}
|
||||
|
@ -99,7 +99,7 @@
|
|||
{% endif %}
|
||||
>
|
||||
{% for action in workflow.global_actions %}
|
||||
<li class="biglistitem" id="itemId_{{ action.id }}"><a href="global-actions/{{ action.id }}/">{{ action.name }}</a></li>
|
||||
<li class="biglistitem" data-id="{{ action.id }}"><a href="global-actions/{{ action.id }}/">{{ action.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
@ -121,7 +121,7 @@
|
|||
>
|
||||
{% spaceless %}
|
||||
{% for level in workflow.criticality_levels %}
|
||||
<li class="biglistitem" id="itemId_{{ level.id }}"
|
||||
<li class="biglistitem" data-id="{{ level.id }}"
|
||||
{% if level.colour %}style="border-left-color: #{{ level.colour }}"{% endif %}>
|
||||
<a rel="popup" href="criticality-levels/{{ level.id }}">{{ level.name }}</a>
|
||||
</li>
|
||||
|
|
Loading…
Reference in New Issue