<commit_before><ion-header>
    <ion-navbar core-back-button>
        <ion-title><core-format-text [text]="title" contextLevel="module" [contextInstanceId]="module.id" [courseId]="courseId"></core-format-text></ion-title>
    </ion-navbar>
</ion-header>
<ion-content>
    <core-loading [hideUntil]="feedbackLoaded">
        <ng-container *ngIf="items && items.length">
            <ion-list no-margin>
                <ion-item text-wrap>
                    <h2>{{ 'addon.mod_feedback.mode' | translate }}</h2>
                    <p *ngIf="access.isanonymous">{{ 'addon.mod_feedback.anonymous' | translate }}</p>
                    <p *ngIf="!access.isanonymous">{{ 'addon.mod_feedback.non_anonymous' | translate }}</p>
                </ion-item>
                <ng-container *ngFor="let item of items">
                    <ion-item-divider *ngIf="item.typ == 'pagebreak'"></ion-item-divider>
                    <ion-item text-wrap *ngIf="item.typ != 'pagebreak'" [color]="item.dependitem > 0 ? 'light' : ''" [class.core-danger-item]="item.isEmpty || item.hasError">
                        <ion-label *ngIf="item.name" [core-mark-required]="item.required" stacked>
                            <span *ngIf="feedback.autonumbering && item.itemnumber">{{item.itemnumber}}. </span>
                            <core-format-text [component]="component" [componentId]="componentId" [text]="item.name" contextLevel="module" [contextInstanceId]="module.id" [courseId]="courseId"></core-format-text>
                            <span *ngIf="item.postfix" class="addon-mod_feedback-postfix">{{item.postfix}}</span>
                        </ion-label>
                        <div item-content class="addon-mod_feedback-form-content" *ngIf="item.template">
                            <ng-container [ngSwitch]="item.template">
                                <ng-container *ngSwitchCase="'label'">
                                    <p><core-format-text [component]="component" [componentId]="componentId" [text]="item.presentation" contextLevel="module" [contextInstanceId]="module.id" [wsNotFiltered]="true" [courseId]="courseId"></core-format-text></p>
                                </ng-container>
                                <ng-container *ngSwitchCase="'textfield'">
                                    <ion-input type="text" [(ngModel)]="item.value" autocorrect="off" name="{{item.typ}}_{{item.id}}" maxlength="{{item.maxlength}}" [required]="item.required"></ion-input>
                                </ng-container>
                                <ng-container *ngSwitchCase="'numeric'">
                                    <ion-input [required]="item.required" name="{{item.typ}}_{{item.id}}" type="number" [(ngModel)]="item.value"></ion-input>
                                    <p *ngIf="item.hasError" ion-text color="danger">{{ 'addon.mod_feedback.numberoutofrange' | translate }} [{{item.rangefrom}}<span *ngIf="item.rangefrom && item.rangeto">, </span>{{item.rangeto}}]</p>
                                </ng-container>
                                <ng-container *ngSwitchCase="'textarea'">
                                    <ion-textarea [required]="item.required" name="{{item.typ}}_{{item.id}}" [attr.aria-multiline]="true" [(ngModel)]="item.value"></ion-textarea>
                                </ng-container>
                                <ng-container *ngSwitchCase="'multichoice-r'"><commit_msg>MOBILE-3213 feedback: Fix question name not filtered<commit_after><ion-header>
    <ion-navbar core-back-button>
        <ion-title><core-format-text [text]="title" contextLevel="module" [contextInstanceId]="module.id" [courseId]="courseId"></core-format-text></ion-title>
    </ion-navbar>
</ion-header>
<ion-content>
    <core-loading [hideUntil]="feedbackLoaded">
        <ng-container *ngIf="items && items.length">
            <ion-list no-margin>
                <ion-item text-wrap>
                    <h2>{{ 'addon.mod_feedback.mode' | translate }}</h2>
                    <p *ngIf="access.isanonymous">{{ 'addon.mod_feedback.anonymous' | translate }}</p>
                    <p *ngIf="!access.isanonymous">{{ 'addon.mod_feedback.non_anonymous' | translate }}</p>
                </ion-item>
                <ng-container *ngFor="let item of items">
                    <ion-item-divider *ngIf="item.typ == 'pagebreak'"></ion-item-divider>
                    <ion-item text-wrap *ngIf="item.typ != 'pagebreak'" [color]="item.dependitem > 0 ? 'light' : ''" [class.core-danger-item]="item.isEmpty || item.hasError">
                        <ion-label *ngIf="item.name" [core-mark-required]="item.required" stacked>
                            <span *ngIf="feedback.autonumbering && item.itemnumber">{{item.itemnumber}}. </span>
                            <core-format-text [component]="component" [componentId]="componentId" [text]="item.name" contextLevel="module" [contextInstanceId]="module.id" [courseId]="courseId" [wsNotFiltered]="true"></core-format-text>
                            <span *ngIf="item.postfix" class="addon-mod_feedback-postfix">{{item.postfix}}</span>
                        </ion-label>
                        <div item-content class="addon-mod_feedback-form-content" *ngIf="item.template">
                            <ng-container [ngSwitch]="item.template">
                                <ng-container *ngSwitchCase="'label'">
                                    <p><core-format-text [component]="component" [componentId]="componentId" [text]="item.presentation" contextLevel="module" [contextInstanceId]="module.id" [wsNotFiltered]="true" [courseId]="courseId"></core-format-text></p>
                                </ng-container>
                                <ng-container *ngSwitchCase="'textfield'">
                                    <ion-input type="text" [(ngModel)]="item.value" autocorrect="off" name="{{item.typ}}_{{item.id}}" maxlength="{{item.maxlength}}" [required]="item.required"></ion-input>
                                </ng-container>
                                <ng-container *ngSwitchCase="'numeric'">
                                    <ion-input [required]="item.required" name="{{item.typ}}_{{item.id}}" type="number" [(ngModel)]="item.value"></ion-input>
                                    <p *ngIf="item.hasError" ion-text color="danger">{{ 'addon.mod_feedback.numberoutofrange' | translate }} [{{item.rangefrom}}<span *ngIf="item.rangefrom && item.rangeto">, </span>{{item.rangeto}}]</p>
                                </ng-container>
                                <ng-container *ngSwitchCase="'textarea'">
                                    <ion-textarea [required]="item.required" name="{{item.typ}}_{{item.id}}" [attr.aria-multiline]="true" [(ngModel)]="item.value"></ion-textarea>
                                </ng-container>
                                <ng-container *ngSwitchCase="'multichoice-r'">
{'fraction_non_alphanumeric': 0.1769031141868512, 'fraction_numerical': 0.0014417531718569781, 'mean_word_length': 2.0817414482452246, 'pattern_counts': {'":': 0, '<': 117, '<?xml version=': 0, '>': 119, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 10, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7238981', 'n_tokens_mistral': 2055, 'n_tokens_neox': 1927, 'n_words': 258}