Skip to content

Commit

Permalink
#1268: Added Relative Orientation: Location to phonology fields
Browse files Browse the repository at this point in the history
Fixed hide show of toggle groups per gloss.
  • Loading branch information
susanodd committed Jul 14, 2024
1 parent 6c23484 commit 137bb63
Show file tree
Hide file tree
Showing 6 changed files with 138 additions and 20 deletions.
31 changes: 31 additions & 0 deletions media/js/glosses_toggle_edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,23 @@ function toggle_relOriMov(data) {
buttonCell.attr('value', button_contents);
}

function toggle_relOriLoc(data) {
if ($.isEmptyObject(data)) {
return;
};
var glossid = data.glossid;
var relOriLoc = data.relOriLoc;
var hCell = $("#relOriLoc_cell_"+glossid);
$(hCell).empty();
var cell = "<span class='relOriLoc'>"+relOriLoc+"</span>";
hCell.html(cell);

var button_lookup = '#button_' + glossid + '_relOriLoc';
var buttonCell = $(button_lookup);
var button_contents = similar_gloss_fields_labels['relOriLoc'] + ': ' + relOriLoc;
buttonCell.attr('value', button_contents);
}

function toggle_create_sense(data) {
if ($.isEmptyObject(data)) {
return;
Expand Down Expand Up @@ -614,6 +631,20 @@ $(document).ready(function() {
});
});

$('.quick_relOriLoc').click(function(e)
{
e.preventDefault();
var glossid = $(this).attr('value');
var relOriLoc = $(this).attr("data-relOriLoc");
$.ajax({
url : url + "/dictionary/update/toggle_relOriLoc/" + glossid + "/" + relOriLoc,
type: 'POST',
data: { 'csrfmiddlewaretoken': csrf_token },
datatype: "json",
success : toggle_relOriLoc
});
});

$('.quick_create_sense').click(function(e)
{
e.preventDefault();
Expand Down
10 changes: 8 additions & 2 deletions signbank/dictionary/adminviews.py
Original file line number Diff line number Diff line change
Expand Up @@ -6540,7 +6540,7 @@ def get_context_data(self, **kwargs):
context['available_tags'] = [tag for tag in Tag.objects.all()]

similar_gloss_fields = ['handedness', 'domhndsh', 'subhndsh', 'handCh', 'relatArtic', 'locprim',
'contType', 'movSh', 'movDir', 'repeat', 'altern', 'relOriMov']
'contType', 'movSh', 'movDir', 'repeat', 'altern', 'relOriMov', 'relOriLoc']
context['similar_gloss_fields'] = json.dumps(similar_gloss_fields)
similar_gloss_fields_labels = {}
for field in similar_gloss_fields:
Expand Down Expand Up @@ -6607,7 +6607,13 @@ def get_context_data(self, **kwargs):
available_relOriMov += [fc for fc in FieldChoice.objects.filter(
field='RelOriMov', machine_value__gt=1).order_by('name')]
context['available_relOriMov'] = available_relOriMov


available_relOriLoc = [fc for fc in FieldChoice.objects.filter(
field='RelOriLoc', machine_value__in=[0, 1]).order_by('machine_value')]
available_relOriLoc += [fc for fc in FieldChoice.objects.filter(
field='RelOriLoc', machine_value__gt=1).order_by('name')]
context['available_relOriLoc'] = available_relOriLoc

context['query_parameters'] = json.dumps(self.query_parameters)
query_parameters_keys = list(self.query_parameters.keys())
context['query_parameters_keys'] = json.dumps(query_parameters_keys)
Expand Down
63 changes: 45 additions & 18 deletions signbank/dictionary/templates/dictionary/admin_batch_edit_view.html
Original file line number Diff line number Diff line change
Expand Up @@ -570,15 +570,23 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>
</td>
</tr>
<tr style="height:26px;">
<th>{% trans "Relative Orientation: Location" %}</th>
<td class="field_relOriLoc" style="width:100px;">
<div class="relOriLoc-cell"
id="relOriLoc_cell_{{gloss.id}}"><span class='relOriLoc'>{% if gloss.relOriLoc %}{{gloss.relOriLoc.name}}{% endif %}</span>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</td>
<td style="width:500px;">
<div id="toggles" class='panel-group'>
<div id="toggles_{{gloss.id}}" class='panel-group'>
<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#toggles"
<div class='panel-heading' data-toggle='collapse' data-parent="#toggles_{{gloss.id}}"
data-target='#toggle_language_fields_panel_{{gloss.id}}'>{% trans "TEXT FIELDS" %}
</div>
<div id='toggle_language_fields_panel_{{gloss.id}}' class="panel-collapse collapse in">
Expand Down Expand Up @@ -608,7 +616,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#toggles"
<div class='panel-heading' data-toggle='collapse' data-parent="#toggles_{{gloss.id}}"
data-target='#toggle_tags_panel_{{gloss.id}}'>{% trans "TAGS" %}
</div>
<div id='toggle_tags_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -626,13 +634,13 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>
</div>
<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#toggles"
<div class='panel-heading' data-toggle='collapse' data-parent="#toggles_{{gloss.id}}"
data-target='#toggle_phonology_panel_{{gloss.id}}'>{% trans "PHONOLOGY" %}
</div>
<div id='toggle_phonology_panel_{{gloss.id}}' class="panel-collapse collapse">
<div id="phonology" class='panel-group'>
<div id="phonology_{{gloss.id}}" class='panel-group'>
<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_handedness_panel_{{gloss.id}}'>{% trans "Handedness" %}
</div>
<div id='toggle_handedness_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -650,7 +658,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>
</div>
<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_domhndsh_panel_{{gloss.id}}'>{% trans "Strong Hand" %}
</div>
<div id='toggle_domhndsh_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -669,7 +677,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_subhndsh_panel_{{gloss.id}}'>{% trans "Weak Hand" %}
</div>
<div id='toggle_subhndsh_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -688,7 +696,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_handCh_panel_{{gloss.id}}'>{% trans "Handshape Change" %}
</div>
<div id='toggle_handCh_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -707,7 +715,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_relatArtic_panel_{{gloss.id}}'>{% trans "Relation between Articulators" %}
</div>
<div id='toggle_relatArtic_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -726,7 +734,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_locprim_panel_{{gloss.id}}'>{% trans "Location" %}
</div>
<div id='toggle_locprim_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -745,7 +753,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_contType_panel_{{gloss.id}}'>{% trans "Contact Type" %}
</div>
<div id='toggle_contType_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -764,7 +772,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_movSh_panel_{{gloss.id}}'>{% trans "Movement Shape" %}
</div>
<div id='toggle_movSh_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -783,7 +791,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_movDir_panel_{{gloss.id}}'>{% trans "Movement Direction" %}
</div>
<div id='toggle_movDir_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -802,7 +810,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_repeat_panel_{{gloss.id}}'>{% trans "Repeated Movement" %}
</div>
<div id='toggle_repeat_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -821,7 +829,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_altern_panel_{{gloss.id}}'>{% trans "Alternating Movement" %}
</div>
<div id='toggle_altern_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -840,7 +848,7 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology"
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_relOriMov_panel_{{gloss.id}}'>{% trans "Relative Orientation: Movement" %}
</div>
<div id='toggle_relOriMov_panel_{{gloss.id}}' class="panel-collapse collapse">
Expand All @@ -858,6 +866,25 @@ <h3>{% trans "Batch Edit" %}</h3>
</div>
</div>

<div class="panel panel-default panel-toggles">
<div class='panel-heading' data-toggle='collapse' data-parent="#phonology_{{gloss.id}}"
data-target='#toggle_relOriLoc_panel_{{gloss.id}}'>{% trans "Relative Orientation: Location" %}
</div>
<div id='toggle_relOriLoc_panel_{{gloss.id}}' class="panel-collapse collapse">
<div class="panel-body" style="display:inline-block;">
<p>
{% for wc in available_relOriLoc %}
<button id='quick_relOriLoc_btn_{{gloss.id}}' class="quick_relOriLoc btn actionButton"
name='quick_relOriLoc_{{gloss.id}}'
value='{{gloss.id}}' data-relOriLoc='{{wc.machine_value}}' style="height:36px;"
type="submit" >{{wc.name}}
</button>
{% endfor %}
</p>
</div>
</div>
</div>

</div>

</div>
Expand Down Expand Up @@ -898,7 +925,7 @@ <h3>{% trans "Batch Edit" %}</h3>
class="quick_similarglosses btn actionButton"
name='quick_similarglosses_{{gloss.id}}'
data-glossid='{{gloss.id}}' style="height:26px;margin-top:10px;"
type="submit" >{% trans "QUERY" %}
type="submit" >{% trans "QUERY EXACT" %}
</button>
</td>
</tr>
Expand Down
13 changes: 13 additions & 0 deletions signbank/dictionary/update.py
Original file line number Diff line number Diff line change
Expand Up @@ -3681,6 +3681,19 @@ def toggle_relOriMov(request, glossid, relOriMov):
return JsonResponse(result)


@permission_required('dictionary.change_gloss')
def toggle_relOriLoc(request, glossid, relOriLoc):

gloss = Gloss.objects.filter(id=glossid).first()

if not okay_to_update_gloss(request, gloss):
return JsonResponse({})

result = mapping_toggle_relOriLoc(request, gloss, relOriLoc)

return JsonResponse(result)


@permission_required('dictionary.change_gloss')
def toggle_language_fields(request, glossid):

Expand Down
38 changes: 38 additions & 0 deletions signbank/dictionary/update_glosses.py
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,44 @@ def mapping_toggle_relOriMov(request, gloss, relOriMov):
return result


@permission_required('dictionary.change_gloss')
def mapping_toggle_relOriLoc(request, gloss, relOriLoc):

try:
relOriLoc_machine_value = int(relOriLoc)
except TypeError:
return {}

empty_relOriLoc = FieldChoice.objects.get(field='RelOriLoc', machine_value=0)
new_relOriLoc = FieldChoice.objects.filter(field='RelOriLoc', machine_value=relOriLoc_machine_value).first()

if not new_relOriLoc:
# if the word class does not exist, set it to empty
relOriLoc_machine_value = 0
new_relOriLoc = empty_relOriLoc

original_relOriLoc = gloss.relOriLoc.name if gloss.relOriLoc else '-'

with atomic():
if not gloss.relOriLoc:
gloss.relOriLoc = new_relOriLoc
elif gloss.relOriLoc.machine_value != relOriLoc_machine_value:
gloss.relOriLoc = new_relOriLoc
else:
gloss.relOriLoc = empty_relOriLoc
new_relOriLoc = empty_relOriLoc
gloss.save()

add_gloss_update_to_revision_history(request.user, gloss, 'relOriLoc', original_relOriLoc, new_relOriLoc.name)

result = dict()
result['glossid'] = str(gloss.id)
newvalue = gloss.relOriLoc.name
result['relOriLoc'] = newvalue

return result


@permission_required('dictionary.change_gloss')
def batch_edit_create_sense(request, gloss):

Expand Down
3 changes: 3 additions & 0 deletions signbank/dictionary/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,9 @@
re_path(r'^update/toggle_relOriMov/(?P<glossid>\d+)/(?P<relOriMov>.*)$',
signbank.dictionary.update.toggle_relOriMov,
name='toggle_relOriMov'),
re_path(r'^update/toggle_relOriLoc/(?P<glossid>\d+)/(?P<relOriLoc>.*)$',
signbank.dictionary.update.toggle_relOriLoc,
name='toggle_relOriLoc'),

re_path(r'^update/quick_create_sense/(?P<glossid>\d+)$',
signbank.dictionary.update.quick_create_sense,
Expand Down

0 comments on commit 137bb63

Please sign in to comment.