Σφάλματα #132
Γραμμή μάθησης - Φραγή πόρων
0%
Description
Η φραγή δεν φαίνεται να λειτουργεί σωστά. Αν γίνει φραγή σε κάποιο πόρο τότε δεν προχωράει η γραμμή μάθησης καθόλου (από τη πλευρά του χρήστη).
History
Updated by Thanos Kyritsis over 10 years ago
Γιάννη, δες λίγο το changeset a175efb342d3 (και εδώ) και κάνε το upgrade στο σχήμα της βάσης αν χρειάζεται. Η διόρθωση αυτή νομίζω λύνει το πρόβλημα.
Updated by Yannis Exidaridis over 10 years ago
Θέλει μια διόρθωση στα if .. or .. and της συνθήκης που ελέγχει πότε είναι blocked ο πόρος.
Στο http://hg.gunet.gr/openeclass/rev/d0dc2253a5d9
η σωστή συνθήκη είναι
if (($module['lock'] == 'CLOSE')
and ($module['credit'] != 'CREDIT'
or ($module['lesson_status'] != 'COMPLETED' and $module['lesson_status'] != 'PASSED'))) {
.........
}
Φαίνεται να δουλεύει σωστά. θα το ελέγξω λίγο ακόμα..
Updated by Thanos Kyritsis over 10 years ago
ΟΚ, πρόσεξε όμως μην ξαναπέσεις στο bug του Issue #108. Εκεί το πρόβλημα εμφανιζόταν όταν υπήρχαν πολλές φραγές: έφτανε μια κατάσταση που μπορούσες όντως να ξεπεράσεις την 1η φραγή (λόγων των εξαιρέσεων του IF), να είσαι στα ενδιάμεσα modules και μόλις πατήσεις στη 2η φραγή συμπεριφερόταν αλλόκοτα στο UI.
Γι' αυτό και είχα ξηλώσει όλο εκείνο το τεράστιο IF και κράτησα τη φραγή να κάνει κάτι, όσο πιο απλό και λογικό γίνεται. Δηλαδή περίπου ό,τι και το visibility, σαν να έχουμε 2 επίπεδα visibility. Αυτές οι εξαιρέσεις τύπου $module['lesson_status'] 'COMPLETED' και $module['lesson_status'] 'PASSED' μου φαίνεται πως εισάγουν πολυπλοκότητα που δεν αρκούν μόνο αυτά τα if για να τη διαχειριστούν, ίσως χρειάζεται επιπλέον κώδικας για handling.