@staticmethod
def compiled_form_readonly(form, attr='disabled', fields_to_remove=[]):
    """
        Restituisce una versione "più pulita" di compiled_form
        - I field non compilati non vengono mostrati (remove_not_compiled_fields())
        - Il campo "titolo" di default non viene mostrato
        - I fields sono readonly
        NOTA: i field select non risentono dell'attributo readonly!!!
        Usato nei metodi che producono le anteprime non modificabili
        dei moduli compilati
        """
    form.remove_not_compiled_fields()
    for field_to_remove in fields_to_remove:
        del form.fields[field_to_remove]
    for generic_field in form:
        field = form.fields[generic_field.name]
        widget = field.widget
        widget.attrs[attr] = True
        if field.is_formset:
            widget.make_readonly(attr)
            continue
        if not hasattr(widget, 'input_type'):
            continue
        tipo = widget.input_type
        if tipo in ['select', 'checkbox', 'radiobox']:
            widget.attrs['disabled'] = True
    return form
