Open sempliciniluigi89 opened 3 weeks ago
potresti fornire il codice così da applicarlo ? Anche io ci sto lavorando.
Anzi tutto fai attenzione a non modificare direttamente il file templates/lezioni/voti_classe_edit.html.twig ma la sua copia in PERSONAL/templates/lezioni/voti_classe_edit.html.twig. Altrimenti ogni volta che fai un aggiornamento rischi di perdere le tue modifiche, sovrascritte dai file dell'aggiornamento.
L'errore dice che stai inviando una stringa di testo, mentre il PHP si aspetta un numero decimale (float). Puoi risolvere se crei un menu a tendina dove il testo mostrato è appunto una stringa (tipo "6+") mentre il valore è il numero corrispondente. Per intenderci, il codice HTML della singola opzione è del tipo: \<option value="6.3"> 6+ \</option>
purtroppo non ho capito molto
Il giorno gio 31 ott 2024 alle ore 21:12 Antonello Dessì < @.***> ha scritto:
Anzi tutto fai attenzione a non modificare direttamente il file templates/lezioni/voti_classe_edit.html.twig ma la sua copia in PERSONAL/templates/lezioni/voti_classe_edit.html.twig. Altrimenti ogni volta che fai un aggiornamento rischi di perdere le tue modifiche, sovrascritte dai file dell'aggiornamento.
L'errore dice che stai inviando una stringa di testo, mentre il PHP si aspetta un numero decimale (float). Puoi risolvere se crei un menu a tendina dove il testo mostrato è appunto una stringa (tipo "6+") mentre il valore è il numero corrispondente. Per intenderci, il codice HTML della singola opzione è del tipo:
- 6+ *
— Reply to this email directly, view it on GitHub https://github.com/iisgiua/giuaschool/issues/774#issuecomment-2450731587, or unsubscribe https://github.com/notifications/unsubscribe-auth/AWL2BFOKNP25UEUUUZKGKO3Z6KFLJAVCNFSM6AAAAABQ6DNLPOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJQG4ZTCNJYG4 . You are receiving this because you authored the thread.Message ID: @.***>
Guarda potresti usare questo codice:
{% extends 'lezioni/index.html.twig' %}
{% form_theme form _self %}
{% block pagina_contenuto %}
<div class="container-fluid">
<div class="panel panel-primary gs-mt-4">
<div class="panel-heading">
<div class="panel-title">{{ form_title|trans }}</div>
</div>
<div class="panel-body gs-pt-0">
<div class="row bg-success">
<div class="col-sm-2 text-right"><strong class="gs-big">Classe:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.classe }}</span></div>
</div>
<div class="row bg-success gs-mb-3">
<div class="col-sm-2 text-right"><strong class="gs-big">Materia:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.materia }}</span></div>
<div class="col-sm-2 text-right"><strong class="gs-big">Valutazione:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.tipo|trans }}</span></div>
</div>
{% if app.session.get('/APP/ROUTE/lezioni_voti_classe/conferma') != 0 %}
<div class="alert alert-warning" role="alert">
<div class="text-center">
<strong class="gs-big">
{{ 'message.alunni_assenti_in_data'|trans }}<br>
{% for a in assenti %}{{ a.cognome }} {{ a.nome }} ({{ a.dataNascita|date('d/m/Y') }}){{ not loop.last ? ', ' }}{% endfor %}.<br>
<em>{{ 'message.modifica_data_o_conferma'|trans }}</em>
</strong>
</div>
</div>
{% endif %}
{{ form_start(form) }}
{{ form_errors(form) }}
{{ form_row(form.data) }}
{{ form_row(form.visibile) }}
{{ form_row(form.argomento) }}
<ul id="gs-form-collection" class="list-group">
{% for alu in form.lista %}
<li class="list-group-item">
<div class="row">
<div class="col-sm-3">
<strong>{{ alu.alunno.vars.value }}</strong>
</div>
{{ form_widget(alu) }}
</div>
</li>
{% endfor %}
</ul>
{{ form_end(form) }}
</div>
</div>
</div>
{% endblock %}
{% block pagina_css %}
{{ parent() }}
<link href="{{ asset('vendor/bootstrap-slider/css/bootstrap-slider.min.css') }}" rel="stylesheet">
<link href="{{ asset('vendor/bootstrap-datepicker/css/bootstrap-datepicker3.min.css') }}" rel="stylesheet">
{% endblock %}
{% block pagina_js_fine %}
{{ parent() }}
<script src="{{ asset('vendor/bootstrap-datepicker/js/bootstrap-datepicker.min.js') }}"></script>
<script src="{{ asset('vendor/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js') }}"></script>
<script>
$(document).ready(function() {
$('[data-toggle="popover"]').popover();
$('.input-group.date').datepicker({
format: "dd/mm/yyyy",
weekStart: 1,
maxViewMode: 1,
daysOfWeekDisabled: "0",
startDate: "{{ label.inizio }}",
endDate: "{{ date()|date('d/m/Y') }}",
datesDisabled: {{ label.festivi|raw }},
todayBtn: "linked",
todayHighlight: true,
autoclose: true,
language: "it",
zIndexOffset: 1200
});
$('input:radio[name="voti_classe[visibile]"]').change(function() {
if ($(this).val() == 1) {
$('input[name^="voti_classe[lista]"][name$="[media]"][value=1]').prop('checked', true);
$('input[name^="voti_classe[lista]"][name$="[media]"]').prop('disabled', false);
} else {
$('input[name^="voti_classe[lista]"][name$="[media]"][value=0]').prop('checked', true);
$('input[name^="voti_classe[lista]"][name$="[media]"]').prop('disabled', true);
}
});
if ($('input[name="voti_classe[visibile]"]:checked').val() == 0) {
$('input[name^="voti_classe[lista]"][name$="[media]"][value=0]').prop('checked', true);
$('input[name^="voti_classe[lista]"][name$="[media]"]').prop('disabled', true);
}
});
</script>
{% endblock %}
{% block _voti_classe_lista_entry_widget %}
<div class="col-sm-9">
<div class="row">
<label class="control-label col-sm-2" for="{{ form.voto.vars.id }}">Voto</label>
<div class="col-sm-10">
<input type="number" id="{{ form.voto.vars.id }}" name="{{ form.voto.vars.full_name }}"
value="{{ form.voto.vars.value > 0 ? form.voto.vars.value : 0 }}" class="form-control gs-mr-1 gs-big"
min="1" max="10" step="0.25">
</div>
</div>
<div class="row ">
<label class="control-label col-sm-2" for="{{ form.giudizio.vars.id }}">Giudizio</label>
<div class="col-sm-10">
{{ form_widget(form.giudizio) }}
</div>
</div>
<div class="row ">
<label class="control-label col-sm-2" for="{{ form.media.vars.id }}">{{ 'label.voto_in_media'|trans }}</label>
<div class="col-sm-10">
{{ form_widget(form.media) }}
</div>
</div>
</div>
{{ form_widget(form.id) }}
{{ form_widget(form.alunno) }}
{% endblock %}
Naturalmente il codice in questione ti permette l'inserimento dei voti interi e decimali. L'unica limitazione è che riconosce solo 0,25 - 0,50 - 0,75
purtroppo non ho capito molto
Nel codice che hai riportato, nella parte seguente ...
{% for i in 1..10 %}
<option value="{{ i }}">{{ i }}</option>
{% if i < 10 %}
<option value="{{ i }}+">{{ i }}+</option>
<option value="{{ i }}½">{{ i }}½</option>
<option value="{{ i+1 }}-">{{ i+1 }}-</option>
{% endif %}
{% endfor %}
Bisogna correggere in questo modo...
{% for i in 1..10 %}
<option value="{{ i }}">{{ i }}</option>
{% if i < 10 %}
<option value="{{ i + 0.25 }}">{{ i }}+</option>
<option value="{{ i + 0.5 }}½">{{ i }}½</option>
<option value="{{ i + 0.75 }}-">{{ i+1 }}-</option>
{% endif %}
{% endfor %}
Anche la soluzione proposta da @manuelbarberi è valida.
@manuelbarberi @trinko come vi sembra questo?
{% extends 'lezioni/index.html.twig' %}
{% form_theme form _self %}
{% block pagina_contenuto %}
{% endblock %}
{% block pagina_css %} {{ parent() }}
{% endblock %}
{% block pagina_js_fine %} {{ parent() }}
{% endblock %}
{% block _voti_classe_lista_entry_widget %}
{% endblock %}
{% extends 'lezioni/index.html.twig' %}
{% form_theme form _self %}
{% block pagina_contenuto %}
{% endblock %}
{% block pagina_css %} {{ parent() }} <link href="{{ asset('vendor/bootstrap-datepicker/css/bootstrap-datepicker3.min.css') }}" rel="stylesheet">
{% endblock %}
{% block pagina_js_fine %} {{ parent() }}
{% endblock %}
{% block _voti_classe_lista_entry_widget %}
{% endblock %}
Il giorno ven 1 nov 2024 alle ore 17:24 Antonello Dessì < @.***> ha scritto:
purtroppo non ho capito molto
Nel codice che hai riportato, nella parte seguente ...
{% for i in 1..10 %} <option value="{{ i }}">{{ i }}</option> {% if i < 10 %} <option value="{{ i }}+">{{ i }}+</option> <option value="{{ i }}½">{{ i }}½</option> <option value="{{ i+1 }}-">{{ i+1 }}-</option> {% endif %} {% endfor %}
Bisogna correggere in questo modo...
{% for i in 1..10 %} <option value="{{ i }}">{{ i }}</option> {% if i < 10 %} <option value="{{ i + 0.25 }}">{{ i }}+</option> <option value="{{ i + 0.5 }}½">{{ i }}½</option> <option value="{{ i + 0.75 }}-">{{ i+1 }}-</option> {% endif %} {% endfor %}
Anche la soluzione proposta da @manuelbarberi https://github.com/manuelbarberi è valida.
— Reply to this email directly, view it on GitHub https://github.com/iisgiua/giuaschool/issues/774#issuecomment-2452168015, or unsubscribe https://github.com/notifications/unsubscribe-auth/AWL2BFIWK56RFLE7PXTZRALZ6OTNLAVCNFSM6AAAAABQ6DNLPOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJSGE3DQMBRGU . You are receiving this because you authored the thread.Message ID: @.***>
cosa ve ne pare del codice inoltrato?
Il giorno ven 1 nov 2024 alle ore 21:30 Luigi Semplicini < @.***> ha scritto:
{% extends 'lezioni/index.html.twig' %}
{% form_theme form _self %}
{% block pagina_contenuto %}
{{ form_title|trans }}Classe:{{ label.classe }}{% if app.session.get('/APP/ROUTE/lezioni_voti_classe/conferma') != 0 %}Materia:{{ label.materia }}Valutazione:{{ label.tipo|trans }}{% endif %} {{ form_start(form) }} {{ form_errors(form) }} {# Data e Argomento #} {{ form_row(form.data) }} {{ form_row(form.argomento) }} {# Opzioni globali #}{{ 'message.alunni_assenti_in_data'|trans }}
{% for a in assenti %}{{ a.cognome }} {{ a.nome }} ({{ a.dataNascita|date('d/m/Y') }}){{ not loop.last ? ', ' }}{% endfor %}.
{{ 'message.modifica_data_o_conferma'|trans }}{# Lista alunni #}Opzioni per tutti i voti
{% for alu in form.lista %}
{{ form_end(form) }}- {% endfor %}
{{ alu.alunno.vars.value }}{{ form_widget(alu) }}{% endblock %}
{% block pagina_css %} {{ parent() }} <link href="{{ asset('vendor/bootstrap-datepicker/css/bootstrap-datepicker3.min.css') }}" rel="stylesheet">
{% endblock %}
{% block pagina_js_fine %} {{ parent() }}
{% endblock %}
{% block _voti_classe_lista_entry_widget %}
{{- form.voto.vars.value > 0 ? form.voto.vars.value|number_format(2, '.', '') : '--' -}}{{ form_widget(form.giudizio) }}{% endblock %}
Il giorno ven 1 nov 2024 alle ore 17:24 Antonello Dessì < @.***> ha scritto:
purtroppo non ho capito molto
Nel codice che hai riportato, nella parte seguente ...
{% for i in 1..10 %} <option value="{{ i }}">{{ i }}</option> {% if i < 10 %} <option value="{{ i }}+">{{ i }}+</option> <option value="{{ i }}½">{{ i }}½</option> <option value="{{ i+1 }}-">{{ i+1 }}-</option> {% endif %} {% endfor %}
Bisogna correggere in questo modo...
{% for i in 1..10 %} <option value="{{ i }}">{{ i }}</option> {% if i < 10 %} <option value="{{ i + 0.25 }}">{{ i }}+</option> <option value="{{ i + 0.5 }}½">{{ i }}½</option> <option value="{{ i + 0.75 }}-">{{ i+1 }}-</option> {% endif %} {% endfor %}
Anche la soluzione proposta da @manuelbarberi https://github.com/manuelbarberi è valida.
— Reply to this email directly, view it on GitHub https://github.com/iisgiua/giuaschool/issues/774#issuecomment-2452168015, or unsubscribe https://github.com/notifications/unsubscribe-auth/AWL2BFIWK56RFLE7PXTZRALZ6OTNLAVCNFSM6AAAAABQ6DNLPOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJSGE3DQMBRGU . You are receiving this because you authored the thread.Message ID: @.***>
solo che ci sono 2 cosine che non sono in grado di risolvere:quando inserisce la valutazione ad un alunno e si vuole inserire un'altra valutazione sempre allo stesso alunno risulta il voto di prima ,anche se comunque è una nuova valutazione
il secondo problema è che in fondo risulta ancora la cosa vecchia del voto visibile ai genitori nonostante io abbia dato modificato con il nuovo sistema a colore rosso e verde .
e poi non so perché ,pur mettendo che il voto non deve far media e non deve risultare visibile alla famiglia ,si vede completamente il contrario
Guarda potresti usare questo codice:
{% extends 'lezioni/index.html.twig' %} {% form_theme form _self %} {% block pagina_contenuto %} <div class="container-fluid"> <div class="panel panel-primary gs-mt-4"> <div class="panel-heading"> <div class="panel-title">{{ form_title|trans }}</div> </div> <div class="panel-body gs-pt-0"> <div class="row bg-success"> <div class="col-sm-2 text-right"><strong class="gs-big">Classe:</strong></div> <div class="col-sm-4"><span class="gs-big">{{ label.classe }}</span></div> </div> <div class="row bg-success gs-mb-3"> <div class="col-sm-2 text-right"><strong class="gs-big">Materia:</strong></div> <div class="col-sm-4"><span class="gs-big">{{ label.materia }}</span></div> <div class="col-sm-2 text-right"><strong class="gs-big">Valutazione:</strong></div> <div class="col-sm-4"><span class="gs-big">{{ label.tipo|trans }}</span></div> </div> {% if app.session.get('/APP/ROUTE/lezioni_voti_classe/conferma') != 0 %} <div class="alert alert-warning" role="alert"> <div class="text-center"> <strong class="gs-big"> {{ 'message.alunni_assenti_in_data'|trans }}<br> {% for a in assenti %}{{ a.cognome }} {{ a.nome }} ({{ a.dataNascita|date('d/m/Y') }}){{ not loop.last ? ', ' }}{% endfor %}.<br> <em>{{ 'message.modifica_data_o_conferma'|trans }}</em> </strong> </div> </div> {% endif %} {{ form_start(form) }} {{ form_errors(form) }} {{ form_row(form.data) }} {{ form_row(form.visibile) }} {{ form_row(form.argomento) }} <ul id="gs-form-collection" class="list-group"> {% for alu in form.lista %} <li class="list-group-item"> <div class="row"> <div class="col-sm-3"> <strong>{{ alu.alunno.vars.value }}</strong> </div> {{ form_widget(alu) }} </div> </li> {% endfor %} </ul> {{ form_end(form) }} </div> </div> </div> {% endblock %} {% block pagina_css %} {{ parent() }} <link href="{{ asset('vendor/bootstrap-slider/css/bootstrap-slider.min.css') }}" rel="stylesheet"> <link href="{{ asset('vendor/bootstrap-datepicker/css/bootstrap-datepicker3.min.css') }}" rel="stylesheet"> {% endblock %} {% block pagina_js_fine %} {{ parent() }} <script src="{{ asset('vendor/bootstrap-datepicker/js/bootstrap-datepicker.min.js') }}"></script> <script src="{{ asset('vendor/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js') }}"></script> <script> $(document).ready(function() { $('[data-toggle="popover"]').popover(); $('.input-group.date').datepicker({ format: "dd/mm/yyyy", weekStart: 1, maxViewMode: 1, daysOfWeekDisabled: "0", startDate: "{{ label.inizio }}", endDate: "{{ date()|date('d/m/Y') }}", datesDisabled: {{ label.festivi|raw }}, todayBtn: "linked", todayHighlight: true, autoclose: true, language: "it", zIndexOffset: 1200 }); $('input:radio[name="voti_classe[visibile]"]').change(function() { if ($(this).val() == 1) { $('input[name^="voti_classe[lista]"][name$="[media]"][value=1]').prop('checked', true); $('input[name^="voti_classe[lista]"][name$="[media]"]').prop('disabled', false); } else { $('input[name^="voti_classe[lista]"][name$="[media]"][value=0]').prop('checked', true); $('input[name^="voti_classe[lista]"][name$="[media]"]').prop('disabled', true); } }); if ($('input[name="voti_classe[visibile]"]:checked').val() == 0) { $('input[name^="voti_classe[lista]"][name$="[media]"][value=0]').prop('checked', true); $('input[name^="voti_classe[lista]"][name$="[media]"]').prop('disabled', true); } }); </script> {% endblock %} {% block _voti_classe_lista_entry_widget %} <div class="col-sm-9"> <div class="row"> <label class="control-label col-sm-2" for="{{ form.voto.vars.id }}">Voto</label> <div class="col-sm-10"> <input type="number" id="{{ form.voto.vars.id }}" name="{{ form.voto.vars.full_name }}" value="{{ form.voto.vars.value > 0 ? form.voto.vars.value : 0 }}" class="form-control gs-mr-1 gs-big" min="1" max="10" step="0.25"> </div> </div> <div class="row "> <label class="control-label col-sm-2" for="{{ form.giudizio.vars.id }}">Giudizio</label> <div class="col-sm-10"> {{ form_widget(form.giudizio) }} </div> </div> <div class="row "> <label class="control-label col-sm-2" for="{{ form.media.vars.id }}">{{ 'label.voto_in_media'|trans }}</label> <div class="col-sm-10"> {{ form_widget(form.media) }} </div> </div> </div> {{ form_widget(form.id) }} {{ form_widget(form.alunno) }} {% endblock %}
Naturalmente il codice in questione ti permette l'inserimento dei voti interi e decimali. L'unica limitazione è che riconosce solo 0,25 - 0,50 - 0,75
per favore sarebbe possibile lasciare la cella vuota ,perché ,sempre per questione di tempo, sarebbe meglio cliccare sulla cella e digitare direttamente il voto, senza dove cancellare prima tutti gli zeri su tutti gli alunni presenti di default
poi ho creato pure questo per far si che sia possibile mettere anche le valutazioni a lettere ,ad esempio nel momento in cui un alunno è interrogato e non ha studiato ,la I equivale a 4 ,solo che non appena carico il codice ricevo l'errore 500 :{% extends 'lezioni/index.html.twig' %}
{% form_theme form _self %}
{% block pagina_contenuto %}
{% endblock %}
{% block pagina_css %} {{ parent() }} <link href="{{ asset('vendor/bootstrap-slider/css/bootstrap-slider.min.css') }}" rel="stylesheet"> <link href="{{ asset('vendor/bootstrap-datepicker/css/bootstrap-datepicker3.min.css') }}" rel="stylesheet"> {% endblock %}
{% block pagina_js_fine %} {{ parent() }}
{% endblock %}
{% block _voti_classe_lista_entry_widget %}
</div>
{% if app.session.get('/APP/ROUTE/lezioni_voti_classe/conferma') !=
0 %}
{% endif %}
{{ form_start(form) }}
{{ form_errors(form) }}
{# Data e Argomento #}
{{ form_row(form.data) }}
{{ form_row(form.argomento) }}
{# Opzioni globali #}
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">Opzioni per tutti i voti</h4>
</div>
<div class="panel-body">
<div class="row options-container">
<div class="col-sm-6">
<div class="option-group">
<label class="control-label">Voti visibili ai
genitori
</div>
</div>
<div class="col-sm-6">
<div class="option-group">
<label class="control-label">Utilizza nel calcolo delle
medie?
</div>
</div>
</div>
</div>
</div>
{# Lista alunni #}
<ul id="gs-form-collection" class="list-group">
{% for alu in form.lista %}
<li class="list-group-item">
<div class="row">
<div class="col-sm-3">
<strong>{{ alu.alunno.vars.value }}</strong>
</div>
{{ form_widget(alu) }}
</div>
</li>
{% endfor %}
</ul>
{{ form_end(form) }}
</div>
{% block pagina_css %} {{ parent() }} <link href="{{ asset('vendor/bootstrap-datepicker/css/bootstrap-datepicker3.min.css') }}" rel="stylesheet">
{% endblock %}
{% block pagina_js_fine %} {{ parent() }}
{% endblock %}
{% block _voti_classe_lista_entry_widget %}
{% endblock %}
Il giorno ven 1 nov 2024 alle ore 17:24 Antonello Dessì < @.***> ha scritto:
purtroppo non ho capito molto
Nel codice che hai riportato, nella parte seguente ...
{% for i in 1..10 %} <option value="{{ i }}">{{ i }}</option> {% if i < 10 %} <option value="{{ i }}+">{{ i }}+</option> <option value="{{ i }}½">{{ i }}½</option> <option value="{{ i+1 }}-">{{ i+1 }}-</option> {% endif %} {% endfor %}
Bisogna correggere in questo modo...
{% for i in 1..10 %} <option value="{{ i }}">{{ i }}</option> {% if i < 10 %} <option value="{{ i + 0.25 }}">{{ i }}+</option> <option value="{{ i + 0.5 }}½">{{ i }}½</option> <option value="{{ i + 0.75 }}-">{{ i+1 }}-</option> {% endif %} {% endfor %}
Anche la soluzione proposta da @manuelbarberi https://github.com/manuelbarberi è valida.
— Reply to this email directly, view it on GitHub https://github.com/iisgiua/giuaschool/issues/774#issuecomment-2452168015, or unsubscribe https://github.com/notifications/unsubscribe-auth/AWL2BFIWK56RFLE7PXTZRALZ6OTNLAVCNFSM6AAAAABQ6DNLPOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJSGE3DQMBRGU . You are receiving this because you authored the thread.Message ID: @.***>
Non fare il copia-incolla del codice, è praticamente illeggibile. Allega i file comprimendoli con ZIP, in questo modo puoi allegare qualsiasi file.
Buongiorno, finalmente sono riuscito a modificare la tipologia d'inserimento delle valutazioni alle classe mediante il percorso templates/lezioni/voti_classe_edit.html.twig In pratica invece del classico tasto "aggiungi" ,ho inserito un menu a tendina dove si clicca e si scorre scegliendo la valutazione da attribuire alla classe ,vi alle pure il codice :
Devo dire che delle volte funziona ed altre no ,infatti se si tratta di attribuire la valutazione a 1,3 massimo 5 alunni ,lo fa egregiamente ,ma se si tratta dell'intera classe mi riporta l'errore 500 che ora vi allego .Ora ho provato ad inserire a tutti gli alunni la valutazione pari a 9 e va tutto bene, infatti non mi da nessun problema ,non vorrei il problema fosse nel codice che permette come unico voto attribuibile il 9 . 2024-10-31_12-41.log