mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 09:12:11 +01:00 
			
		
		
		
	Fix credit/debit tabs
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
			
		||||
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
 | 
			
		||||
# SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
 | 
			
		||||
from note.models import NoteSpecial
 | 
			
		||||
from treasury.models import SpecialTransactionProxy, RemittanceType
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -8,5 +9,6 @@ def save_special_transaction(instance, created, **kwargs):
 | 
			
		||||
    """
 | 
			
		||||
    When a special transaction is created, we create its linked proxy
 | 
			
		||||
    """
 | 
			
		||||
    if created and RemittanceType.objects.filter(note=instance.source).exists():
 | 
			
		||||
    if created and isinstance(instance.source, NoteSpecial) \
 | 
			
		||||
            and RemittanceType.objects.filter(note=instance.source).exists():
 | 
			
		||||
        SpecialTransactionProxy.objects.create(transaction=instance, remittance=None).save()
 | 
			
		||||
 
 | 
			
		||||
@@ -34,6 +34,9 @@ $(document).ready(function() {
 | 
			
		||||
        if ($("#type_credit").is(":checked") || $("#type_debit").is(":checked")) {
 | 
			
		||||
            let arr = $("#type_credit").is(":checked") ? dests_notes_display : sources_notes_display;
 | 
			
		||||
 | 
			
		||||
            if (arr.length === 0)
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            let last = arr[arr.length - 1];
 | 
			
		||||
            arr.length = 0;
 | 
			
		||||
            arr.push(last);
 | 
			
		||||
@@ -65,6 +68,68 @@ $(document).ready(function() {
 | 
			
		||||
    autoCompleteNote("dest_note", "dest_note_list", dests, dests_notes_display,
 | 
			
		||||
        "dest_alias", "dest_note", "user_note", "profile_pic", checkUniqueNote);
 | 
			
		||||
 | 
			
		||||
    let source = $("#source_note");
 | 
			
		||||
    let dest = $("#dest_note");
 | 
			
		||||
 | 
			
		||||
    $("#type_gift").click(function() {
 | 
			
		||||
        $("#special_transaction_div").addClass('d-none');
 | 
			
		||||
        source.attr('disabled', true);
 | 
			
		||||
        source.val(username);
 | 
			
		||||
        source.tooltip('hide');
 | 
			
		||||
        $("#source_note_list").addClass('d-none');
 | 
			
		||||
        dest.attr('disabled', false);
 | 
			
		||||
        $("#dest_note_list").removeClass('d-none');
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $("#type_transfer").click(function() {
 | 
			
		||||
        $("#special_transaction_div").addClass('d-none');
 | 
			
		||||
        source.attr('disabled', false);
 | 
			
		||||
        $("#source_note_list").removeClass('d-none');
 | 
			
		||||
        dest.attr('disabled', false);
 | 
			
		||||
        $("#dest_note_list").removeClass('d-none');
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $("#type_credit").click(function() {
 | 
			
		||||
        $("#special_transaction_div").removeClass('d-none');
 | 
			
		||||
        $("#source_note_list").addClass('d-none');
 | 
			
		||||
        $("#dest_note_list").removeClass('d-none');
 | 
			
		||||
        source.attr('disabled', true);
 | 
			
		||||
        source.val($("#credit_type option:selected").text());
 | 
			
		||||
        source.tooltip('hide');
 | 
			
		||||
        dest.attr('disabled', false);
 | 
			
		||||
        dest.val('');
 | 
			
		||||
        dest.tooltip('hide');
 | 
			
		||||
 | 
			
		||||
        if (dests_notes_display.length > 1) {
 | 
			
		||||
            $("#dest_note_list").html('');
 | 
			
		||||
            dests_notes_display.length = 0;
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $("#type_debit").click(function() {
 | 
			
		||||
        $("#special_transaction_div").removeClass('d-none');
 | 
			
		||||
        $("#source_note_list").removeClass('d-none');
 | 
			
		||||
        $("#dest_note_list").addClass('d-none');
 | 
			
		||||
        source.attr('disabled', false);
 | 
			
		||||
        source.val('');
 | 
			
		||||
        source.tooltip('hide');
 | 
			
		||||
        dest.attr('disabled', true);
 | 
			
		||||
        dest.val($("#credit_type option:selected").text());
 | 
			
		||||
        dest.tooltip('hide');
 | 
			
		||||
 | 
			
		||||
        if (sources_notes_display.length > 1) {
 | 
			
		||||
            $("#source_note_list").html('');
 | 
			
		||||
            sources_notes_display.length = 0;
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
        $("#credit_type").change(function() {
 | 
			
		||||
            let type = $("#credit_type option:selected").text();
 | 
			
		||||
            if ($("#type_credit").is(":checked"))
 | 
			
		||||
                source.val(type);
 | 
			
		||||
            else
 | 
			
		||||
                dest.val(type);
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    // Ensure we begin in gift mode. Removing these lines may cause problems when reloading.
 | 
			
		||||
    let type_gift = $("#type_gift"); // Default mode
 | 
			
		||||
 
 | 
			
		||||
@@ -160,57 +160,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
        TRANSFER_POLYMORPHIC_CTYPE = {{ polymorphic_ctype }};
 | 
			
		||||
        SPECIAL_TRANSFER_POLYMORPHIC_CTYPE = {{ special_polymorphic_ctype }};
 | 
			
		||||
        user_id = {{ user.note.pk }};
 | 
			
		||||
 | 
			
		||||
        source = $("#source_note");
 | 
			
		||||
        dest = $("#dest_note");
 | 
			
		||||
 | 
			
		||||
        $("#type_gift").click(function() {
 | 
			
		||||
            $("#special_transaction_div").addClass('d-none');
 | 
			
		||||
            source.attr('disabled', true);
 | 
			
		||||
            source.val("{{ user.username }}");
 | 
			
		||||
            source.tooltip('hide');
 | 
			
		||||
            $("#source_note_list").addClass('d-none');
 | 
			
		||||
            dest.attr('disabled', false);
 | 
			
		||||
            $("#dest_note_list").removeClass('d-none');
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        $("#type_transfer").click(function() {
 | 
			
		||||
            $("#special_transaction_div").addClass('d-none');
 | 
			
		||||
            source.attr('disabled', false);
 | 
			
		||||
            $("#source_note_list").removeClass('d-none');
 | 
			
		||||
            dest.attr('disabled', false);
 | 
			
		||||
            $("#dest_note_list").removeClass('d-none');
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        $("#type_credit").click(function() {
 | 
			
		||||
            $("#special_transaction_div").removeClass('d-none');
 | 
			
		||||
            $("#source_note_list").addClass('d-none');
 | 
			
		||||
            $("#dest_note_list").removeClass('d-none');
 | 
			
		||||
            source.attr('disabled', true);
 | 
			
		||||
            source.val($("#credit_type option:selected").text());
 | 
			
		||||
            source.tooltip('hide');
 | 
			
		||||
            dest.attr('disabled', false);
 | 
			
		||||
            dest.val('');
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        $("#type_debit").click(function() {
 | 
			
		||||
            $("#special_transaction_div").removeClass('d-none');
 | 
			
		||||
            $("#source_note_list").removeClass('d-none');
 | 
			
		||||
            $("#dest_note_list").addClass('d-none');
 | 
			
		||||
            source.attr('disabled', false);
 | 
			
		||||
            source.val('');
 | 
			
		||||
            dest.attr('disabled', true);
 | 
			
		||||
            dest.val($("#credit_type option:selected").text());
 | 
			
		||||
            dest.tooltip('hide');
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        $("#credit_type").change(function() {
 | 
			
		||||
            let type = $("#credit_type option:selected").text();
 | 
			
		||||
            if ($("#type_credit").is(":checked"))
 | 
			
		||||
                source.val(type);
 | 
			
		||||
            else
 | 
			
		||||
                dest.val(type);
 | 
			
		||||
        });
 | 
			
		||||
        username = "{{ user.username }}";
 | 
			
		||||
    </script>
 | 
			
		||||
    <script src="/static/js/transfer.js"></script>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user