Ηλεκτρ. Απουσιολόγος & Προγρ. Διαγωνισμάτων & Καταχώριση Βαθμολογίας

Ξεκίνησε από Γεώργιος Θεοδώρου, 05 Οκτ 2020, 09:30:47 ΜΜ

« προηγούμενο - επόμενο »

Γεώργιος Θεοδώρου

Αγαπητοί συνάδελφοι

σας παρουσιάζω τον Ηλ. Απουσιολόγο

Σκοπός:
1. Η καταγραφή των απουσιών των μαθητών κάθε ώρα σε πραγματικό χρόνο.
2. Άμεση εποπτεία των απόντων μαθητών από την 1η ώρα και κάθε ώρα.
3. Εισαγωγή των απουσιών στο myschool άμα τη λήξη των μαθημάτων (εξαγωγή αρχείου xls).

Έχει δημιουργηθεί με το framework Laravel.

Για εγκατάσταση:
Κατεβάστε τον κώδικα από το github:

Τρέξτε την εντολή composer install --no-dev
Ρυθμίστε τα username και password για το email.
Ανεβάστε αυτά στον server.



Έτοιμο zip για ανέβασμα στο server στον παρακάτω φάκελο


https://drive.google.com/drive/folders/1U4SKEO2th3YwwmBm1skQqS0Q_SFPc9iH?usp=sharing

Τελευταία ενημέρωση 15/2/2022



Έχει εγκατασταθεί στον webhost και σήμερα την 1η ημέρα λειτουργίας ενθουσίασε τους καθηγητές παρ ότι κάποιοι ήταν διστακτικοί.

Σενάριο λειτουργίας

Οι καθηγητές
συνδέονται με το email τους και το password.
Βλέπουν τα τμήματά τους, στα οποία κάνουν μάθημα.
Επιλέγουν το τμήμα στο οποίο κάνουν μάθημα.
Εμφανίζονται οι μαθητές και δίπλα ανάλογα με την ώρα checkboxes.
Ενεργή είναι μόνο η τρέχουσα ώρα.
πχ από τις 8:15 ώς τις 9:00 μόνο η 1η ώρα, από τις 9:05 έως τις 9:50 η 2η ώρα, κλπ
Βάζουν απουσίες και Αποθήκεύουν.

Ο Διαχειριστής (γραφείο)
την πρώτη φορά
εισάγει με xls καθηγητές με τα τμήματά τους, μαθητές με τα τμήματά τους

κάθε ημέρα
συνδέεται με το email και το password.
Βλέπει συνολικά ποιοι μαθητές λείπουν ή επιλέγει τμήμα
Εξάγει το μεσημέρι xls και το εισάγει στο myschool (Δυστυχώς πρέπει να ανοίξει με excell και  να γίνει save as xls!!!)

Επισυνάπτονται οδηγίες ρύθμισης και χρήσης.

Δημήτρης Κανάς

Μπράβο!!! Έγραψες πάλι φίλε μου.

Θα δικτυώσεις όλα τα σχολεία με τις εφαρμογές σου (μαζί με τον nekpap)!

Αλλά κι αυτό το Laravel... μαγικά κάνει.

Περιμένουμε κι άλλες ιδέες!!!
Powered by Elxis : LabSchool.mysch.gr

Λάμπρος Μπουκουβάλας

Συγχαρητήρια.
νομίζω ότι θα είναι πολύ χρήσιμο στο άμεσο μέλλον...
Ποιον server χρησιμοποιείς;;;
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

Ο Θουκυδίδης  (που τον διαβάζουν οι ξένοι, αλλά όχι εμείς)  έγραφε: «Αταλαίπωρος τοις πολλοίς η ζήτησις της αληθείας, και επί τα ετοίμα μάλλον τρέπονται» (Ι, 20, 3). Οι περισσότεροι δηλαδή αναζητούν αβασάνιστα την αλήθεια και στρέφονται σε ό,τι βρίσκουν έτοιμο. Δεν προβληματίζονται...

Γεώργιος Θεοδώρου

webhost.sch.gr


Ανέβηκε σε ένα φάκελο στο /httpdocs

/httpdocs/apousiologos


To μόνο που πρέπει να κάνει κανείς μετά την εγκατάσταση των php libraries με composer install --no-dev

είναι να ρυθμίσει αν θέλει στο αρχείο .env τα username και password για αποστολή email

είτε μέσω gmail

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xxxxxxxxx
MAIL_PASSWORD=xxxxxxxxxx
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME="${APP_NAME}"

είτε μέσω sch.gr

MAIL_DRIVER=smtp
MAIL_HOST=mail.sch.gr
MAIL_PORT=465
MAIL_USERNAME=xxxxxxxx
MAIL_PASSWORD=xxxxxxxx
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME="${APP_NAME}"

ή

MAIL_DRIVER=smtp
MAIL_HOST=mail.sch.gr
MAIL_PORT=25
MAIL_USERNAME=xxxxxxx
MAIL_PASSWORD=xxxxxxxx
MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME="${APP_NAME}"

και να ανεβάσει το αποτέλεσμα με ftp στον server



Ακολουθεί ο υπερσύνδεσμος για τον Ηλ.Απουσιολόγο του 11ου ΓΕΛ Πάτρας

https://11lyk-patras.mysch.gr/apousiologos/



Λάμπρος Μπουκουβάλας

Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

Ο Θουκυδίδης  (που τον διαβάζουν οι ξένοι, αλλά όχι εμείς)  έγραφε: «Αταλαίπωρος τοις πολλοίς η ζήτησις της αληθείας, και επί τα ετοίμα μάλλον τρέπονται» (Ι, 20, 3). Οι περισσότεροι δηλαδή αναζητούν αβασάνιστα την αλήθεια και στρέφονται σε ό,τι βρίσκουν έτοιμο. Δεν προβληματίζονται...

Γεώργιος Θεοδώρου

#5
και Προγραμματιστής Διαγωνισμάτων

Προστέθηκε λειτουργικότητα προγραμματισμού διαγωνισμάτων

Καθηγητές
    • Οι καθηγητές επιλέγουν στο ημερολόγιο την ημέρα που θέλουν να βάλουν διαγώνισμα.
    • Στην εμφανιζόμενη φόρμα επιλέγουν το τμήμα (ή τμήματα για συνδιδασκαλία) και το μάθημα και αποθηκεύουν.
    • Πατώντας πάνω σε ένα διαγώνισμα μπορούν να το διαγράψουν (μόνο τα δικά τους).
    • Μπορούν να δουν λίστα με τα διαγωνίσματά τους. Επίσης λίστα με όλα τα διαγωνίσματα ανά εβδομάδα – μήνα.
    • Κώδικας χρωμάτων:
        ◦ Μπλε   -> μελλοντικά διαγωνίσματα καθηγητή
        ◦ Γκρι   ->μελλοντικά διαγωνίσματα άλλων καθηγητών
        ◦ Ανοιχτό μπλε ->παρελθόντα διαγωνίσματα καθηγητή
        ◦ Ανοιχτό γκρι   -> παρελθόντα διαγωνίσματα άλλων καθηγητών
     
Διαχειριστής
    • Ο διαχειριστής μπορεί να εισάγει ή να διαγράψει οποιοδήποτε διαγώνισμα.
    • Ορίζει στις ρυθμίσεις τα επιτρεπόμενα διαγωνίσματα την ημέρα  - εβδομάδα

Λίγα λόγια για το πως δουλεύει
Το πρόγραμμα ομαδοποιεί τα τμήματα των μαθητών λαμβάνοντας υπόψη τις εμπλοκές, σε ποια τμήματα δηλαδή συμμετέχει κάθε μαθητής(πχ: Γ3 ΓΘΕΤ2, Γ3_Μαθηματικά, Γ3ΑΓΓΛΙΚΑ).
Αν προγραμματιστεί διαγώνισμα σε ένα τμήμα ή σε τμήματα που κάνουν συνδιδασκαλία, τότε υπολογίζονται οι εμπλοκές την ίδια ημέρα και αποκλείονται όλα τα εμπλεκόμενα τμήματα ( γενικής παιδείας, προσανατολισμού, ξένων γλωσσών, κλπ) στα οποία συμμετέχουν οι μαθητές.
Υπολογισμός εβδομαδιαίων διαγωνισμάτων. Αν προγραμματιστεί διαγώνισμα σε ένα τμήμα τότε θεωρείται ότι όλα τα εμπλεκόμενα τμήματα γράφουν διαγώνισμα εκείνη την ημέρα. Όποια τμήματα φτάσουν το όριο των επιτρεπομένων διαγωνισμάτων την εβδομάδα ( προεπιλεγμένο: 3 ) παύουν να είναι διαθέσιμα.





Γεώργιος Θεοδώρου

#6
Προστέθηκε η δυνατότητα καταχώρισης βαθμολογίας



Κώδικας στο github

https://github.com/g-theodoroy/apousiologos-examsplanner-bathmologia



Με το τέλος του ΤΕΤΡΑΜΗΝΟΥ

  • Ο Διαχειριστής ορίζει

    • την ενεργή περίοδο βαθμολογίας πχ Α ΤΕΤΡΑΜΗΝΟ
    • αν οι καθηγητές θα βλέπουν ΝΑΙ/ΟΧΙ τους βαθμούς στα άλλα μαθήματα
  • Οι καθηγητές περνάνε στα τμήματά - μαθήματά τους βαθμούς
  • Ο Διαχειριστής εξάγει αρχείο 187.xls όμοιο με αυτά που δίνει το myschool

    • Αντιγράφει τα δεδομένα σε ένα αρχείο 187.xls του myschool
    • Με το τελευταίο αρχείο κάνει τρεις καταχωρίσεις μία για κάθε τάξη

      • Το myschool παραπονιέται για στήλες μαθημάτων που δεν είναι σωστές για την τάξη
      • Καταχωρίζει τα δεδομένα

ΠΡΟΣΟΧΗ:
Αν έχετε ενεργό απουσιολόγο ή απουσιολόγο-προγραμματιστή.
ΥΠΑΡΧΕΙ ΔΙΑΦΟΡΑ ΣΤΑ ΠΕΔΙΑ ΤΗΣ ΒΔ.

Μπορείτε να εισάγετε τα xls που είχατε εισάγει και πριν με καθηγητές και μαθητές.
Ακολούθως με ένα πρόγραμμα ανοίξτε την παλιά ΒΔ και εξάγετε 2 tables: apousies & events σε αρχεία .sql.
Εισάγετε τα 2 αρχεία στα tables στη νέα ΒΔ.


Γεώργιος Θεοδώρου

Τέθηκε η ερώτηση:

Μπορώ να έχω λογαριασμό στον απουσιολόγο του τμήματος να περνά απουσίες;


Πρώτη απάντηση: Δεν έχει προβλεφθεί!


Τελική απάντηση:

Εισάγω χρήστη και του αντιστοιχίζω

  • ΜΟΝΟ τμήμα-τα
  • ΟΧΙ μαθήματα

Αυτός θα έχει πρόσβαση στον Απουσιολόγο ( καταχώριση απουσιών)
Δέν θα έχει πρόσβαση στον Προγραμματιστή Διαγωνισμάτων και Βαθμολογίες


Γεώργιος Θεοδώρου

#8
Είμαι πολύ ευχαριστημένος από τον τρόπο που λειτούργησε η συλλογή της Βαθμολογίας του Β ΤΕΤΡ του 2021
Ήταν η πρώτη επίσημη δοκιμή σε πραγματικές συνθήκες

Βήματα:

  • Ενεργοποίηση στις ρυθμίσεις της Βαθμολογίας του Β ΤΕΤΡΑΜΗΝΟΥ εικ.1
  • Εισαγωγή βαθμών online από τους καθηγητές ανά μάθημα-τμήμα εικ.2
  • Πατώντας στο ματάκι βλέπεις τους βαθμούς του μαθητή και στα άλλα μαθήματα εικ.3
  • Εξαγωγή των 187.xls για κάθε τάξη εικ.4
  • Καταχώριση στο myschool
  • Απόκρυψη στις ρυθμίσεις της Βαθμολογίας

Τέλος τα xls, αποστολή xls με email, επιστροφή συμπληρωμένων xls με email, κλπ, κλπ ...

Γεώργιος Θεοδώρου

Προστέθηκε έλεγχος αν οι βαθμοί που καταχωρίζονται είναι κάτω από τη "βάση".
Σκοπός η αποφυγή λανθασμένης πληκτρολόγησης πχ: 2 αντί για 20.

Η "βάση" ορίζεται στις ρυθμίσεις πχ: 10.

Αν ο βαθμός είναι μικρότερος τότε ενημερώνεται ο καθηγητής και ερωτάται αν θέλει να συνεχίσει.

Σε θετική απάντηση καταχωρίζεται ο βαθμός.

Γιώργος Κολόμβος

#10
...

Γεώργιος Θεοδώρου

Το Plesk έχει μια επιλογή "Php Composer".

Δες συνημμένη εικόνα.

Εκεί από το γραφικό περιβάλλον του Plesk εγκαθίστανται - ενημερώνονται οι βιβλιοθήκες της Php.

Δοκιμάζοντας την εγκατάσταση με αυτόν τον τρόπο δυστυχώς δεν ολοκληρωνόταν η διαδικασία!!!

Προτείνω να κατεβάσεις το έτοιμο zip-άκι.

Αλλιώς εγκατάσταση σε lamp ή win+xampp και ανέβασμα των αρχείων στον server ( Έτσι φτιάχνω το zip-άκι !)

Γιώργος Κολόμβος

#12
Ανέβασα το έτοιμο zip-άκι στο https://lyk-deme.mysch.gr/APOYSIOLOGOS και μέχρις στιγμής φαίνεται να δουλεύει ΤΕΛΕΙΑ. Θα κάνω όμως κι άλλες δοκιμές και θα ενημερώσω για τα αποτελέσματα.
Και πάλι συγχαρητήρια Γιώργο για την εξαιρετική δουλειά αλλά και για την υποστήριξη.
Γιώργος Κολόμβος
Εκπ/κός Πληροφορικής
Γενικό Λύκειο Δεμενίκων

Γεώργιος Θεοδώρου


Γεώργιος Θεοδώρου

Σας ενημερώνω ότι έγιναν αλλαγές στον κώδικα με στόχο τη βελτιστοποίηση του Ηλ. Απουσιολόγου.

Πλέον οι σελίδες φορτώνουν πιο γρήγορα και καταναλώνουν λιγότερους πόρους.

Έχει ανέβει zipάκι ενημερωμένο ( ημερομηνία 21/10/2021 )

Πρόταση για την αντικατάσταση sτον webhost.sch.gr

  • Μετονομάστε τον φάκελο με την  υπάρχουσα εγκατάσταση πχ: apousiologos-old
  • Ανεβάστε το νέο zip (apousiologos-21-10-2021) και αποσυμπιέστε
  • Αντιγράψτε την παλιά ΒΔ apousiologos.sqlite από την παλιά εγκατάσταση στη νέα

Είστε έτοιμοι  8)

Γεώργιος Θεοδώρου

Ο Διαχειριστής πλέον στη Διαχείριση των Καθηγητών βλέπει

  • και τους Καθηγητές,
  • και τους Διαχειριστές.

Μπορεί να ορίσει κάποιον Καθηγητή σαν Διαχειριστή ή όχι επιλέγοντας το κουτάκι.


Ο πρώτος εγγεγραμμένος χρήστης-Διαχειριστής δεν μπορεί

  • να πάψει να είναι Διαχειριστής,
  • να διαγραφεί.

  8)

cpp

Καλησπέρα σας

Το λιγότερο που μπορω να πω είναι συγχαρητήρια για την πολυ καλή δουλειά και σαφώς για την διάθεση να την  μοιράζεστε με όλους...

Πέρσι είχαμε όλοι παιδευτεί με τα συνεργατικά έγγραφά , ειδικά για τις απουσίες...

Εγκατέστησα το πρόγραμμα όμως έχω ενα θέμα με την εισαγωγή μαθητών.

Ενώ τους καθηγητές τους πέρασα με το excell χωρίς πρόβλημα  κα τα την εισαγωγή των μαθητών μου επιστρέφει 500 server error ...

Καμιά ιδέα?

Πρεπει τα τμήματα να είναι ομοια με αυτα των καθηγητών ? Γιατί τα έβαλα με διαφορετικη ονομασία καθώς απο το myschoool  δεν έχω προσβαση στα εργαστηριακά μαθήματα.

Ευχαριστώ εκ των προτέρων

Γεώργιος Θεοδώρου

Καλησπέρα


Θα ξεκινήσω από το εξής:

Πρέπει τα δεδομένα να είναι ακριβή και σωστά.

Θα συμβούλευα να τα παίρνουμε από το myschool.


Κατά την εισαγωγή καθηγητών και μαθητών δεν γίνεται έλεγχος αν τα τμήματα συμφωνούν. Απλά αν δεν είναι τα xls σωστά συμπληρωμένα μπορεί να δημιουργηθεί λάθος.

Αν τα τμήματα καθηγητών μαθητών δεν είναι ίδια δεν θα υπάρχει αντιστοίχιση καθηγητών - μαθητών. Αν στον καθηγητή βάλω τμήμα Α-ΚΑΤΙ και δεν υπάρχει σε κανένα μαθητή το Α-ΚΑΤΙ τότε ο καθηγητής θα βλέπει ένα κενό τμήμα.

Επίσης δεν θα λειτουργεί η ΔΗΛΩΣΗ ΔΙΑΓΩΝΙΣΜΑΤΩΝ σωστά γιατί δεν θα μπορούν να υπολογιστούν οι εμπλοκές έτσι ώστε να αποφεύγονται τα 2 διαγωνίσματα την ημέρα και πάνω από 3 την εβδομάδα.

Τα ονόματα των μαθημάτων επίσης πρέπει να είναι ίδια με του myschool για να μπορέσω να κάνω συλλογή βαθμολογίας και να την περάσω στο myschool.




Τώρα για το Error|500


Είναι τα αρχεία xls σύμφωνα με τα πρότυπα;

Στις ρυθμίσεις πριν εισάγεις καθηγητές ή μαθητές σου προσφέρονται πρότυπα αρχεία.

Αν έχεις ήδη εισάγει μαθητές καθηγητές σου εξάγονται αρχεία xls


Στις οδηγίες περιγράφεται ο τρόπος δημιουργίας των αρχείων από αναφορές του myschool.


Μήπως τα ονόματα των τμημάτων έχουν κανένα παράξενο ( απαγορευμένο ) χαρακτήρα; πχ / ή \ κλπ


Αν όλα τα παραπάνω είναι σωστά


τότε πρέπει να δούμε στο storage/logs/laravel.log τι δημιούργησε το πρόβλημα

Εναλλακτικά στο αρχείο .env στη γραμμή 4 να κάνουμε το APP_DEBUG=true ώστε να εμφανιστούν πληροφορίες για το πρόβλημα στην οθόνη μας.



cpp

Ευχαριστώ για την άμεση απάντηση

Κατανοητό για τα τμήματα και θα ανεβούν αναλογα...

Για το 500 error

Μου κάνει εντύπωση πως το σφάλμα το εμφανίζει και στο πρότυπο excel που  κατέβασα από την εφαρμογή, κάι μόνο στους μαθητές

Στο log εμφανίζει μεταξύ άλλων....  περισσότερα  στο συνημμένο

[2021-11-09 21:23:44] local.ERROR: SQLSTATE[HY000]: General error: 20 datatype mismatch (SQL: insert into "students" ("id", "eponimo", "onoma", "patronimo", "updated_at", "created_at") values (AM1, Επώνυμο1, Όνομα1, Πατρώνυμο1, 2021-11-09 21:23:44, 2021-11-09 21:23:44)) {"userId":1,"exception":"[object] (Illuminate\\Database\\QueryException(code: HY000): SQLSTATE[HY000]: General error: 20 datatype mismatch (SQL: insert into \"students\" (\"id\", \"eponimo\", \"onoma\", \"patronimo\", \"updated_at\", \"created_at\") values (AM1, Επώνυμο1, Όνομα1, Πατρώνυμο1, 2021-11-09 21:23:44, 2021-11-09 21:23:44)) at /var/www/vhosts/*************/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Database/Connection.php:671)




Γεώργιος Θεοδώρου

Η στήλη Αρ.Μητρώου πρέπει να είναι αριθμός.

Συγνώμη ... αλλά το θεωρούσα αυτονόητο !!!!

Έτσι δεν κάνουμε και στο myschool; Έτσι δεν κάνουμε και στο Βιβλίο Μητρώου;

Τελικά τίποτε δεν είναι αυτονόητο  :angel:

cpp

Καλημέρα...

Προφάνώς είναι αυτονόητο ότι θα είναι αριθμός...  Όντως έιχα πειράξει το πεδίο στο excel προσπαθώντας να δω τί φταίει...
Το σφαλμα ήταν τελικά (εκτός από το Α.Μ) στα τμήματα τα οποία από το myschool  για κάποιο λόγο δημιουργούσε θέματα στο excel.
Πιθανότατα η ύπαρξη κενών (δηλ Β Γενικής και όχι Β-ΓΕΝ) ή κάποιος χαρακτήρας σε κάποιο τμήμα που δεν μπόρεσα να βρώ.

Ευχαριστώ πολύ για την άμεση βοήθεια.
Επίσης παρατήρησα (στο δικό μου  setup και αν δεν έκανα κάτι λάθος πάλι....  :-\) ότι στους χρήστες  όταν έκαναν login  εβγαζε 500 error. 
Αν έκανα πίσω και κλίκ στο κεντρικό logo μπορούσε να δεί ο χρήστης τα στοιχεία του και να  δηλωσει τα διαγωνίσματα.

Πιθανότατα να οφείλετε στο γεγονός με τις δεσμέυσεις για την καταγραφή απουσιών...  Μόλις τσέκαρα από τις ρυθμίσεις 
Οι ώρες να είναι ξεκλείδωτες   
Επιτρέπεται η εισαγωγή απουσιών εκτός ωραρίου   
Επιτρέπεται στους καθηγητές να ξεκλειδώνουν τις ώρες   
Να μη κρύβονται οι επόμενες ώρες   

Δεν υπάρχει κανένα πρόβλημα....

Φυσικά μπορεί να κάνω κάτι λάθος έγω ή να μην επέλεξα κάτι που έπρεπε...   

Και πάλι ευχαριστώ...  Θα αλλάξω τα τμήματα στο myschool, θα βάλω και τα εργαστηριακά μαθήματα και θα σας ενημερώσω...  για την λειτουργία του στο Εσπερινό ΕΠΑΛ Αριδαίας....




Γεώργιος Θεοδώρου

Πάντα κάτι θα διορθώνεται...

Προστέθηκε validation κατά την εισαγωγή δεδομένων

  • μέσω excell. Επιστρέφεται ειδοποίηση για τις γραμμές που δεν περνάνε
  • από τον διαχειριστή

Επίσης διορθώθηκαν μικρολαθάκια και φορμαρίστηκε ο κώδικας

Ioanna Papanikolaou

Συχαρητήρια! Πολύ ωραία εφαρμογή. Την ανεβασα στο gym-ee-ptolem.koz.sch.gr/examsplanner/.
Θα ήταν πολύ χρήσιμο να μπορούσε να εκτυπωθεί ο προγραμματισμός των διαγωνισμάτων.
Συγχαρητήρια και πάλι

Γεώργιος Θεοδώρου

Με ένα Ctrl-A και copy - paste σε κειμενογράφο (word - libreoffice )
παίρνουμε έναν "ανεκτό" πίνακα της μορφής "ημερολογίου" είτε "λίστας".

Αν δεν καλυπτόμαστε από αυτό, ναι μπορεί να γίνει μια εξαγωγή σε xls και εκτύπωση.

Γεώργιος Θεοδώρου

#24
Προστέθηκε:

Ο Διαχειριστής μπορεί πατώντας το κουμπί [Εξαγωγή]

να εξάγει τα διαγωνίσματα που βλέπει στον προγραμματιστή διαγωνισμάτων σε αρχείο xls.

8)

cpp

Καλημέρα σας

Υπάρχει όριο στον αριθμό τμηματων του κάθε μαθητή; Παιδευομαι ώρες προσπαθώντας να δω γιατί  μου επιστρεφει σφάλφα ο server και διαπίστωσα ότι μάλλον δεν μπορεί να δεχθεί 6ο τμήμα... 

Δεν ξέρω αν είναι όντως αυτό και φυσικά δεν ξέρω πόσο εύκολα μπορεί  να αλλάξει.

Επισής θα ήταν πολύ χρήσιμο να μπορεί να γίνει εξαγωγή σε xls  η βαθμολογία ανα μάθημα..

Ευχαριστώ.
Χρήστος

Γεώργιος Θεοδώρου

Α αριθμός τμημάτων

5 ΤΜΗΜΑΤΑ

Σε ένα Γενικό Λύκειο έχουμε:

  • Γενικής Παιδείας
  • Ξένης Γλώσσας
  • Ομάδας Προσανατολισμού
  • Κόντρα μάθημα
  • ..................... και μία θέση "αμοιβή" ( spare )

Ο αριθμός των τμημάτων είναι εμφανής

  • στις κεφαλίδες του xls εισαγωγής μαθητών (εικ.1)
  • στη φόρμα εισαγωγής - επεξεργασίας μαθητών (εικ.2)

Πόσα χρειαζόμαστε;



Β Εξαγωγή xls ανά μάθημα

Η δημιουργία της λειτουργικότητας για καταχώριση βαθμολογίας έγινε
για να αντικαταστήσει την μέχρι πρότινος πρακτική δημιουργίας xls για
κάθε καθηγητή, τον διαμοιρασμό αυτών, τη συλλογή αυτών, ...

https://alkisg.mysch.gr/steki/index.php?topic=6091.0 (Γκίνης)
https://alkisg.mysch.gr/steki/index.php?topic=6485.0 (Θεοδώρου)

Για ποιο λόγο τα χρειαζόμαστε;

cpp

Καλησπέρα
Να σαι καλά για την αμεση απάντηση

Τουλάχιστον στα ΕΠΑΛ υπάρχει απαίτηση και για 6ο τμήμα στην Α ταξη.

1. Γενικής
2. Ξένης Γλώσσας
3. Μάθημα Επιλογής
4. Μάθημα Επιλογής
5. Μαθημα Επιλογής
6. Προσανατολισμού

Αφού δεν έσπασα κανένα mouse...  μέχρι να το καταλάβω...
Θα έπρεπε να μου πάει το μυαλό πιο νωρίς αλλά κόλλησα με ενδεχόμενο λάθος στα τμήματα (μορφή κενά κωδικοποίηση κλπ)...

Σχετικά με το excel
Δεν είναι απαραίτητο αλλά τουλάχιστον το θεωρώ χρήσιμο.
Συνηθίζω στο σχολείο να κρατάω σε excel (εκτυπωμένα ή μή) καθώς στο 2 τετράμηνο (και στις εξετάσεις) συχνά οι καθηγητές πρέπει να ανατρέξουν στις βαθμολογίες , τις οποίες (το γιατί είναι άλλο θέμα) δεν έχουν κρατημένες.
Οπότε ως αρχείο έχω τις βαθμολογίες ανα μάθημα όπου αποτυπώνονται και τα 2 τετράμηνα καθώς και τα γραπτά.

Επίσης προς αποφυγή παρεξηγήσεων καλό είναι να υπάρχει η βαθμολογία ή σε email ή σε φυσική μορφή.

Δεν ξέρω αν είναι εύκολο να προστεθεί τμήμα ... θα παρακολουθώ το νήμα

Ευχαριστώ...

Καλή συνέχεια






Γεώργιος Θεοδώρου

#28
Προστέθηκε έκτο (6) τμήμα


Σχετικά με το excel

Όσον αφορά τους βαθμούς

  • των άλλων καθηγητών στην ίδια βαθμολογική περίοδο
  • τους δικούς μας στην προηγούμενη  βαθμολογική περίοδο
  • των άλλων καθηγητών στην προηγούμενη βαθμολογική περίοδο

υπάρχει ήδη πρόβλεψη.

Στις ρυθμίσεις επιλέγεις:

Εμφάνιση βαθμών άλλων μαθημάτων   [ΝΑΙ]



Συνηθίζω και εκτυπώνω (ή αποθηκεύω ως pdf) μετά το πέρασμα των βαθμών με τα τρία 187.xls την Αναφορά από το myschool:
Αναφορές μαθητών -> Βαθμοί -> Κατάσταση βαθμολογίας κατά μάθημα με χαρακτηρισμό βαθμού (Θέλει και μια μικρή τροποποίηση για να γίνει Α4 πορτραίτο).

Αυτή (στοιχεία από το myschool) δίνω στους καθηγητές για έλεγχο, υπογραφή
και αυτή αν χρειαστεί θα φυλάξω υπογεγραμμένη.

Συνήθως παίρνω από όλους ένα ΟΚ και προχωρώ στην εκτύπωση των ελέγχων προόδου.

Γεώργιος Θεοδώρου

#29
Τα τμήματα πλέον δεν έχουν περιορισμό.

Κατά την εισαγωγή μαθητών με xls όσα τμήματα υπάρχουν συνεχόμενα στη γραμμή μετά το Πατρώνυμο εισάγονται στη ΒΔ.

Κατά την εισαγωγή - επεξεργασία μαθητή με τη φόρμα προσφέρονται πεδία για εισαγωγή τμημάτων που προσαρμόζονται δυναμικά στον αριθμό των τμημάτων.

cpp

Οκ λοιπόν...

Συγχαρητήρια για την προσπάθεια αλλά και για την συνεχή υποστήριξη και βελτίωση....

Ελπίζω να μη σε ταλαιπωρούμε  συνεχώς...  ::) 

Ευχαριστώ

Χρήστος

Γιώργος Κολόμβος

#31
Γιώργο καλησπέρα. Φέτος έχουμε χρησιμοποιήσει την εφαρμογή σου με μεγάλη επιτυχία για τον προγραμματισμό των διαγωνισμάτων του Α' τετραμήνου. Έχεις τα συγχαρητήρια όλων των συναδέλφων!!!
Μόλις πριν λίγο ανέβασα την νέα έκδοση της εφαρμογής (της 28-11-2021) και μετέφερα εκεί το αρχείο storage/app/apousiologos.sqlite από την παλιά εγκατάσταση.

Φαίνεται να λειτουργεί μια χαρά αλλά όταν συνδεθεί κάποιος με λογαριασμό καθηγητή και επιλέξει από το μενού "Απουσιολόγος" τότε εμφανίζεται "500 Server Error". Αν συνδεθώ ως Διαχειριστής όμως δεν εμφανίζεται αυτό το λάθος. Η έκδοση της PHP που έχω είναι 8.0.3. Παρατήρησα επίσης ότι με την έκδοση 8.0.3 της PHP εμφανίζεται το ίδιο σφάλμα και στην παλιά έκδοση της εφαρμογής (της 21-06-2021).
Τι μπορεί να φταίει;

Γεώργιος Θεοδώρου

Η php 8 κάνει πιο αυστηρούς ελέγχους.


Μου έτυχε και μένα να μην αρχικοποιείται μια μεταβλητή και να κρεμάει...


Μπορεί να είναι και ο συνδυασμός των ρυθμίσεων από τον διαχειριστή... (μου έτυχε)


Μπορεί να έχει προστεθεί κάποια μεταβλητή για έλεγχο που να μην υπάρχει στην παλιά ΒΔ

Μπορείς να συγκρίνεις το table configs να δείς αν υπάρχει κάποια νέα μεταβλητή...


Βήματα για debug:


Βήμα 1:

Στο αρχείο .env κάνε τη μεταβλητή APP_DEBUG=true

Έτσι θα μας δώσει στην οθόνη περιγραφή του σφάλματος



Βήμα 2:

Αν συνεχίσει να βγάζει μόνο error 500 κάτι που είναι γενικό

Καθάρισε το /storage/logs/laravel.log από προηγούμενα logs.

Τρέξε την εφαρμογή να δούμε τι μας βγάζει.



Βήμα 3:

Να το δούμε μαζί...



Η απομάκρυνση κάποιου "εντόμου"  από τα κοινώς επονομαζόμενα BUG θα ωφελήσει όλους μας.


Γεώργιος Θεοδώρου

ΕΠΑΝΕΡΧΟΜΑΙ

Διορθώθηκε

Η μή αρχικοποίηση της μεταβλητής $hoursUnlocked κρέμαγε την εφαρμογή.

ΞΑΝΑΚΑΤΕΒΑΣΤΕ το τελευταίο zip


Ευχαριστώ πολύ Γιώργο Κολόμβο

Γιώργος Κολόμβος

#34
Γιώργο, σ' ευχαριστούμε για την άμεση επέμβαση. Ανέβασα την νέα έκδοση και λειτουργεί πλέον άψογα με PHP 8.0.3

Έχω μια μικροδιόρθωση για αποφυγή παρανοήσεων: αν θέλεις να διορθώσεις την ημερομηνία στη φράση
Τελευταία ενημέρωση 28/11/2021
σε 31/12/2021 (το ίδιο και στο όνομα του zip αρχείου στο DRIVE) γιατί μέχρι να καταλάβω τι έχει συμβεί έψαχνα να βρω που είναι το νέο zip αρχείο...


Nikosn

Καλημέρα και καλή χρονιά.
Συγχαρητήρια για την καλή δουλειά!
Τοπικά με xampp με php 8.03 τρέχει κανονικά η εφαρμογή, όμως online στο ΠΣΔ δεν παίζει λόγω χρήσης PHP 8.1.1 πως μπορώ να το κάνω να παίξει στο site του ΠΣΔ?
Ευχαριστώ εκ των προτέρων
Η γνώση κατακτάται μέσα από τα λάθη μας

Γεώργιος Θεοδώρου


Nikosn

Μάλλον κάτι δεν έχω καταλάβει στη διαδικασία με το Composer, μου βγάζει λάθη και ζητάει update
Η γνώση κατακτάται μέσα από τα λάθη μας

Γεώργιος Θεοδώρου

Πιθανότατα χρειάζεται ενημέρωση των libraries του framework Symfony πάνω στο οποίο χτίστηκε η laravel πάνω στο οποίο χτίστηκε ο Ηλ.Απουσιολόγος, κλπ, κλπ...

Ο απουσιολόγος φτιάχτηκε με την έκδοση 7 του framework laravel πέρυσι τον Σεπτέμβριο και κοινοποιήθηκε αρχές Οκτωβρίου.

Χρησιμοποιεί το css framework Bulma που είναι για την Lar7. Γιατί το Bulma? Ήθελα να δοκιμάσω κάτι άλλο... εκτός του Bootstrap3 που ήδη είχε περάσει στο 4 και τώρα είναι στο 5.1.3!!!


Σε μια προσπάθεια να αναβαθμίσω το project στη Laravel 8 βρήκα δυσκολίες στις εξαρτήσεις με το Bulma και υπαναχώρησα.


Υπάρχει μια καλώς εννοούμενη "κούρσα" στο λογισμικό που ελεύθερα μας προσφέρουν. Δεν ξέρω αν είναι σκόπιμη, σίγουρα όμως δεν μπορώ να την ακολουθήσω επιμελώς ...

Αυτή η κούρσα προφανώς θα σπρώξει στην εφεδρεία τα Project που δεν μπορούν να ανανεώνονται με το ρυθμό που ανανεώνονται οι βιβλιοθήκες.



Τώρα ποια λύση προτείνω:

ΣΣ: Δεν είμαι ειδικός απλά μου αρέσει να δημιουργώ


Α

Ρυθμίζουμε την php στην 8.0.3 που όπως είπες δουλεύει ή ακόμη και στην 7.xx. Σίγουρα θα έχουμε υποστήριξη για κάποια χρόνια ακόμη.

Με εκπλήσσει η σπουδή της ανανέωσης στην php 8.1 στον server του ΠΣΔ που σας φιλοξενεί. Ζητήστε από τους συναδέλφους στο ΠΣΔ να έχουν και την 8.0.3


Β

Στήνουμε ένα server στο σχολείο.

Τον τελευταίο μήνα τρέχω στο σχολείο τον Ηλ. Απουσιολόγο σε win10-xampp και σκέφτομαι να στήσω ένα debian server με το μηχάνημα που έμεινε μετά την απόσυρση του BOCOM. Έχει και RAID !!!!

Αυτό έγινε γιατί το ΠΣΔ έπεφτε τακτικά. Επίσης ένας συνάδελφος έχει αγοράσει cloud και τρέχει και το site του σχολείου και την εφαρμογή.

Γ

Μπορεί να κάνουμε μια προσπάθεια να ενημερώσουμε τις βιβλιοθήκες

composer update --no-dev

Αυτό όμως χρειάζεται πρόσβαση στην console του server του ΠΣΔ που δεν μας τη δίνουν!!!

Απομένει λοιπόν να γίνει προσπάθεια στον τοπικό Η/Υ ( προσωπικά δουλεύω Manjaro Linux) για να ενημερωθούν οι βιβλιοθήκες με win-xampp ή linux και μετά να ανεβάσουμε το ενημερωμένο project στον server.

Με αυτό τον τρόπο φτιάχνονται τα zipακια που σας προσφέρονται έτοιμα να παίξουν με μια αποσυμπίεση στον server του ΠΣΔ.





Με την ευκαιρία

Θέλω να σας ενημερώσω και για το εξής:

Είναι σχεδόν έτοιμη η version2 του Ηλ.Απουσιολόγου

Μόλις σήμερα την τελείωσα! (Ιαν 2022)

Χρησιμοποιεί την Laravel8 και το tailwindcss Θέλει όμως testing πριν δοθεί στην παραγωγή...

Φυσικά τίποτε δεν εγγυάται ότι θα παίζει με την php8.1.1 καθώς και η laravel θα προχωρήσει οσονούπω στην έκδοση 9....


Συγχωρέστε με για την πολυλογία!

Nikosn

Έχετε κάνει πολύ καλή δουλειά, όλα τα παραπάνω είναι πολύ χρήσιμα σαν οδηγίες και θα βοηθήσουν.
Τώρα παρατηρώ δοκιμάζοντας το zip αρχείο κατευθειαν στο xampp με php 8.0.3 παίζει αλλά μόλις προσπαθω να κάνω εγγραφή βγάζει 500 server error και όταν πάω στην αρχική σελίδα εμφανίζει ως μοναδικό κουμπι το αρχική (όχι είσοδος) και όταν το πατήσω γράφει πάλι "500 server error", αν σβήσω το log ξανά από την αρχή...
Τι μπορεί να φταίει?
Η γνώση κατακτάται μέσα από τα λάθη μας

Γεώργιος Θεοδώρου

#40
Λοιπόν

Δοκίμασα την έκδοση 1 στο xampp με php 8.1.1

Δεν δουλεύει και
Δεν κάνει composer update

προφανώς για τους λόγους που ανέφερα στην προηγούμενη απάντηση.


ΣΥΜΠΕΡΑΣΜΑ

Τη δουλεύουμε με php 8.0 και μικρότερη.



Για τα προβλήματα που αναφέρεις

ΚΑΤΕΒΑΣΕ ΤΟ ΤΕΛΕΥΤΑΙΟ ZIP 31-12-2021

Διορθώθηκε πρόσφατα μετά από υπόδειξη του Γιώργου Κολόμβου



Πληροφοριακά η version 2 έπαιξε κανονικά! Αναμείνατε ...



Nikosn

Καλησπέρα και πάλι, με το XAMPP PHP8.014 ή και 8.03 και το φάκελο apousiologos (από το zip 31-12-2021) τοποθετημένο μέσα στο htdocs εμφανίζεται η αρχική οθόνη, κάνω εγγραφή με τα στοιχεία μου και βάζω κωδικο(πχ 9 ψηφιο) και μετά μου  εμφανίζει 500 server error. Το lavarel.log μου γραφει:
[2022-01-09 14:55:37] local.ERROR: Undefined array key "pastDaysInsertApousies" {"userId":1,"exception":"[object] (ErrorException(code: 0): Undefined array key \"pastDaysInsertApousies\" at C:\\xampp\\htdocs\\apousiologos\\app\\Http\\Controllers\\HomeController.php:238)
[stacktrace]
#0 C:\\xampp\\htdocs\\apousiologos\\app\\Http\\Controllers\\HomeController.php(238): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'Undefined array...', 'C:\\\\xampp\\\\htdocs...', 238)
#1 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controller.php(54): App\\Http\\Controllers\\HomeController->index('0', '09/01/22')
#2 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('index', Array)
#3 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(239): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\HomeController), 'index')
#4 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(196): Illuminate\\Routing\\Route->runController()
#5 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(685): Illuminate\\Routing\\Route->run()
#6 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#7 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#8 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#9 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#10 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#11 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#12 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#13 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\View\\Middleware\\ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#14 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#15 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Session\\Middleware\\StartSession.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#16 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Session\\Middleware\\StartSession.php(62): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
#17 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#18 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#19 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#20 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#21 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#22 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(687): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#24 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(662): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#25 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(628): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#26 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(617): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#27 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(165): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#28 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#29 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#30 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#31 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#33 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#34 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#35 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#36 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#37 C:\\xampp\\htdocs\\apousiologos\\vendor\\fruitcake\\laravel-cors\\src\\HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#38 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#39 C:\\xampp\\htdocs\\apousiologos\\vendor\\fideloper\\proxy\\src\\TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#40 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#41 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#42 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(140): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#43 C:\\xampp\\htdocs\\apousiologos\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(109): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#44 C:\\xampp\\htdocs\\apousiologos\\public\\index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#45 C:\\xampp\\htdocs\\apousiologos\\server.php(21): require_once('C:\\\\xampp\\\\htdocs...')
#46 {main}
"}
Τώρα θα δοκιμάσω και με PHP 7.14.27 που έχω κατεβασμένη
Η γνώση κατακτάται μέσα από τα λάθη μας

Nikosn

Τελικά μου δούλεψε o apousiologos-27-11-2021.
Ερώτηση τα xls ΑΝΑΘΕΣΕΙΣ και ΤΜΗΜΑΤΑ τα φτιάχνουμε χειροκίνητα με copy paste απο τα xls του myschool στα πρότυπα που υπάρχουν στο πρόγραμμα???
Η γνώση κατακτάται μέσα από τα λάθη μας

Γεώργιος Θεοδώρου

#43
Διορθώθηκε

Κατέβασε το τελειταίο zip (31-12-21) πάλι παρακαλώ.

Όπως λέει στο laravel.log λείπει το key "pastDaysInsertApousies" το οποίο ζητάμε από τον πίνακα $settings στον HomeController.php στη γραμμή 238

238: if ($settings['pastDaysInsertApousies'] && $date !== $today)




Aν θές να το διορθώσεις μόνος σου πρόσθεσε στην ΒΔ storage/app/apousiologos.sqlite και στον πίνακα configs μια νέα γραμμή όπου

στη στήλη key βάζεις pastDaysInsertApousies

στη στήλη value αφήνεις null



Ευχαριστώ για το debug

Γεώργιος Θεοδώρου

Τα xls

Υπάρχουν οδηγίες στο "Οδηγίες ρύθμισης κ χρήσης του Ηλ.απουσιολόγου pdf"

Πήγαινε στη σελίδα "Περί..." και στον σύνδεσμο "Περισσοτερες πληροφορίες για τη ρύθμιση και χρήση.".

Η ιδέα σου είναι πολύ σωστή.

Nikosn

Καλημέρα, έχω εγκαταστήσει την εφαρμογή apousiologos  (εκδοση 31-12-21)στο Server του ΠΣΔ εκεί που είναι και η ιστοσελίδα του σχολείου, στο νέο ιστότοπο μέσα στο httdocs σε ένα φάκελο.
   Μέχρι χθες έμπαινα κανονικά, κάτι πρέπει να έγινε όταν μαζικά μπήκαν άλλοι καθηγητές ή κάτι άλλο σχετικά με το ΠΣΔ, γιατί σήμερα είδα HTTP ERROR 500. Τι  μπορεί να έχει συμβεί? Το log είναι άδειο! Επίσης τα αρχεία/φάκελοι έχουν ημερομηνία τροποποίησης την ημέρα που το εγκατέστησα.
  Επίσης αντεγραψα ολο το φακελο τοπικα και στο xammp τωρα παίρνω αυτο που φαίνεται στην επισυναπτόμενη εικόνα! Τέλος σε σχέση με αυτό που είχα ανεβάσει στο Server φαίνεται πως τώρα λείπουν αρχεία: πχ λείπει το .env, .env.example, gitattributes, .htaccess, .styleci.yml

Αν θέλω να σώσω καθηγητές/μαθητες/αποθηκευμένη πληροφορια απο αυτούς τι πρέπει να σώσω ώστε να το ξαναβάλω πάλι καθαρό?
Ευχαριστώ εκ των προτέρων.
Η γνώση κατακτάται μέσα από τα λάθη μας

Γεώργιος Θεοδώρου

Όλες οι πληροφορίες (δεδομένα) βρίσκονται στην ΒΔ

storage/app/apousiologos.sqlite

Αυτό το αρχείο κράτα σαν backup.

Ενέργειες που μπορείς να κάνεις:

  • Μετονομάζεις στον webhost τον υπάρχοντα απουσιολόγο πχ apousiologos-back
  • Ανεβάζεις εκ νέου το zipάκι
  • Αντιγράφεις τη ΒΔ στον καινούριο κατάλογο

cpp

Καλημέρα σε όλους

Το ΠΣΔ έχει βαλθει να μας παιδευει... Μέσα στις γιορτές ολοκλήρωσα την εισαγωγή και έλεγξα ότι είναι όλα οκ.
Όμως μετα από κάποιες αλλαγές που εκανε το ΠΣΔ στο hosting πλέον δεν έχω πρόσβαση στο subdirectory καθώς με επιστρέφει πίσω στο wordpress και εμφανίζοντας το μήνημα ότι δεν υπάρχει η σελίδα.... Κάτι γίνεται με το htaccess αλλά παρόλο τις προσπάθειές μου και το ticket που ανοιξα δεν υπάρχει λύση.

Έτσι ανέβασα το φακελο στον προσωπικό χώρο από το ΠΣΔ.   Tο γραφω καθώς μπορει να συμβεί και σε κάποιον άλλο συνάδελφο

Το προβλημα που έχω (αν είναι πρόβλημα ή δεν καταλαβα κάτι) είναι ότι όταν πάω να κάνω

Ενημέρωση των εξηχθέντων αρχείων 187.xls για κάθε τάξη από το myschool
επιστρεφει  server error 500

Αν δεν κανω λάθος με την λειτουργικότητα αυτή ενημερώνεται το 187 και δεν χρειαζεται copy paste. Σωστά ?

Στο log εμφανίζεται



[2022-01-28 01:56:03] local.ERROR: Attempt to read property "mathima" on null {"userId":1,"exception":"[object] (ErrorException(code: 0): Attempt to read property \"mathima\" on null at /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/app/Http/Controllers/AdminController.php:286)
[stacktrace]
#0 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/app/Http/Controllers/AdminController.php(286): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
#1 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\AdminController->populateXls()
#2 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction()
#3 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Routing/Route.php(239): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#4 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Routing/Route.php(196): Illuminate\\Routing\\Route->runController()
#5 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Routing/Router.php(685): Illuminate\\Routing\\Route->run()
#6 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#7 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/app/Http/Middleware/MustBeAdmin.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#8 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\MustBeAdmin->handle()
#9 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#10 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#11 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#12 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Auth\\Middleware\\Authenticate->handle()
#13 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#14 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#15 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#16 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#17 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#18 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#19 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle()
#20 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#22 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#23 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#24 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#25 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Routing/Router.php(687): Illuminate\\Pipeline\\Pipeline->then()
#26 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\\Routing\\Router->runRouteWithinStack()
#27 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Routing/Router.php(628): Illuminate\\Routing\\Router->runRoute()
#28 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Routing/Router.php(617): Illuminate\\Routing\\Router->dispatchToRoute()
#29 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Routing\\Router->dispatch()
#30 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#31 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#32 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#33 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#36 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#37 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle()
#39 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#40 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle()
#41 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#42 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle()
#43 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#44 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(140): Illuminate\\Pipeline\\Pipeline->then()
#45 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(109): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#46 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle()
#47 /var/www/vhosts/*******.sites.sch.gr/httpdocs/apousiologos/server.php(21): require_once('...')
#48 {main}
"}

[/size]

Έκδοση PHP 8.0.15
Tέλος αν και δεν είναι σημαντικό το αναφέρω
Παρατηρησα πως κρατάει στην εμφανηση των βαθμών από άλλους καθηγητές (στο ματακι) βαθμούς που πλέον είναι κενό στην βαθμολογία.
Τί εννοώ. Όταν έκανα δοκιμές έβαλα βαθμολογίες σε κάποιο μάθημα. Στη συνέχεια τις έσβησα και πάτησα αποθήκευση. Στο "ματακι" εμφανίζεται η πρώτη βαθμολογία που είχα βάλει (όταν δεν υπαρχει βαθμός).
Δεν ξέρω αν υπάρχει η δυνατότητα reset  στις βαθμολογίες (αν και κατανοώ πως καλό θα ήταν να απουσιάζει....)
Δεν είναι σημαντικό αλλά το αναφέρω μήπως και απασχολήσει κάποιον.

Ευχαριστώ για την όποια απάντηση

Γεώργιος Θεοδώρου

Διορθώθηκε ένα μικρό bug στην Βαθμολογία.

Ευχαριστώ τον cpp για την υπόδειξη

cpp

Εμείς ευχαριστούμε Γιώργο.... 

Και πάνω από όλα για την διάθεση να βοηθάς ...

Δούλεψαν όλα καλά,....  :)

Thanks...  Αναμένουμε την 2η version!

Γιώργος Κολόμβος

#50
Καλημέρα Γιώργο,
   Ήδη έχουν ξεκινήσει οι συνάδελφοι να εισάγουν την βαθμολογία Α' τετραμήνου στην εφαρμογή και γενικά πάει καλά. Όμως με έχουν πάρει τηλέφωνο 2 συνάδελφοι και μου παραπονιούνται ότι που και που τους "πετάει έξω" με error 500. Eγώ δοκίμασα να μπω με τους λογαριασμούς τους από τον δικό μου υπολογιστή αλλά δεν εμφανίστηκε κανένα πρόβλημα. Έχω όμως ακόμη την έκδοση της 31-12-2021 οπότε θα δοκιμάσω τώρα να βάλω την τελευταία έκδοση.
   Ένα άλλο πολύ σημαντικό θέμα είναι το εξής: η οθόνη εισαγωγής βαθμολογίας εμφανίζει μόνο το ονοματεπώνυμο των μαθητών. Πολλές φορές όμως υπάρχουν συνωνυμίες, μάλιστα εμείς μέχρι πέρυσι είχαμε στο ίδιο τμήμα 2 μαθητές με το ίδιο ονοματεπώνυμο και πατρώνυμο οπότε μπορούσαμε να τους διακρίνουμε μόνο από το μητρώνυμο ή τον Α.Μ. τους. Φέτος έχουμε απλή συνωνυμία και για να λύσω το θέμα στην εφαρμογή έβαλα χειροκίνητα στο όνομα των 2 μαθητών και το πατρώνυμό τους ώστε να μπορούν να τους διακρίνουν οι συνάδελφοι. Μια πρότασή μου θα ήταν λοιπόν, όταν μπορέσεις να βάλεις στην οθόνη εισαγωγής βαθμολογίας μαζί με το ονοματεπώνυμο των μαθητών και τον ΑΜ τους ή αν είναι εύκολο, το πατρώνυμο ή και το μητρώνυμο.
  Σε ευχαριστούμε πολύ για το μεγάλο σου κόπο να συντηρείς αυτή την εφαρμογή. Είναι πραγματικά πολύ χρήσιμη.

Γιώργος Κολόμβος
ΓΕΛ Δεμενίκων     

Γεώργιος Θεοδώρου

Προστέθηκε ο Αρ. Μητρώου μαθητή σε στήλη πριν το Επώνυμο Όνομα.

Αν πάμε το ποντίκι πάνω από το Ονοματεπώνυμο εμφανίζεται και το Πατρώνυμο

Κατεβάστε παρακαλώ το apousiologos-30-1-22

Για τα error 500 να ελέγξουμε το laravel.log ( να δεις τι έγραψε την ώρα που μπήκαν οι συνάδελφοι και "χτύπησε")

Γιώργος Κολόμβος

Παράθεση από: Γεώργιος Θεοδώρου στις 30 Ιαν 2022, 06:00:03 ΜΜ
Προστέθηκε ο Αρ. Μητρώου μαθητή σε στήλη πριν το Επώνυμο Όνομα.
Αν πάμε το ποντίκι πάνω από το Ονοματεπώνυμο εμφανίζεται και το Πατρώνυμο
Κατεβάστε παρακαλώ το apousiologos-30-1-22
Συνάδελφε η ταχύτητα απόκρισής σου είναι ασύλληπτη. Σ' ευχαριστώ, πιστεύω ότι ο ΑΜ και το πατρώνυμο είναι ακριβώς αυτό που χρειαζόταν. Δυστυχώς όμως κάτι συμβαίνει στο webhost.sch.gr αυτή τη στιγμή και δεν με αφήνει να ανεβάσω τίποτα οπότε θα δοκιμάσω την νέα έκδοση αργότερα. Μάλιστα πριν λίγο μπήκα στο helpdesk.sch.gr για να καταγράψω ένα αίτημα υποστήριξης για το πρόβλημα με τον webhost.sch.gr και είδα εκεί την ακόλουθη ανακοίνωση:
   "Τις τελευταίες ημέρες υφίσταται πρόβλημα απόδοσης και λειτουργίας πολλών ιστοσελίδων χρηστών και μονάδων, για το οποίο οι τεχνικοί μας εργάζονται για την επίλυσή του. Αν ο ιστότοπός σας επιστρέφει σφάλμα: "Internal Server Error" παρακαλούμε μην υποβάλλετε αίτημα στο πληροφοριακό σύστημα, διότι ήδη συγκαταλλέγεται στο γενικότερο πρόβλημα. Σας ευχαριστούμε  για την κατανόηση σας και τη συνεργασία σας."
   Οπότε το error 500 που εμφανίστηκε μάλλον δεν είναι πρόβλημα της εφαρμογής αλλά του ΠΣΔ.
Καλό βράδυ

Γεώργιος Θεοδώρου

#53
Σέβομαι και βγάζω το καπέλο στους εκλεκτούς συναδέλφους στο ΠΣΔ που κάνουν τα μάλα για να μας υποστηρίξουν.

Προφανώς για να δουλεύει ο Ηλ.Απουσιολόγος "real time" πρέπει να είναι διαθέσιμος ο server.




Μετά από κάποιες τέτοιες ... αστοχίες έστησα πρόχειρα και ΠΡΟΣΩΡΙΝΑ στον υπολογιστή μου (win 10) ένα xampp.

Κάρφωσα σταθερή IP μια από τις τρεις που έχει κάθε σχολείο ( συνήθως xx.xx.xx.10 xx.xx.xx.11 xx.xx.xx.20 )

Ζήτησα και μου γνωστοποίησαν τις αντίστοιχες εξωτερικές IP.

Επίσης ρυθμίσανε το microtik του σχολείου να επιτρέπει την πρόσβαση σε αυτές εσωτερικές και εξωτερικές.

Έτσι αποκτήσαμε πρόσβαση μέσω της IP.


Το πρόβλημα που συνάντησα ήταν ότι δεν μπόρεσα να ρυθμίσω το https:// με το Let'sEncrypt και ότι το απόγευμα καθώς ο Η/Υ έμπαινε σε νάρκη ( hibernate ) χάναμε την πρόσβαση.




Τελικά μετά τις διακοπές των Χριστουγέννων έστησα στο αποσυρμένο BOCOM ( έχει και RAID) ένα Debian server.

Βρήκα οδηγίες στο υπερκείμενο για την εγκατάσταση του Debian σε σύστημα με RAID CONTROLLER.

Επίσης οδηγίες για την εγκατάσταση της php8.

Ζήτησα και καταχώρισαν στον DNS SERVER του ΠΣΔ μια εγγραφή C/NAME (edu.11lyk-patras.mysch.gr) να οδηγεί στην IP.

Με αυτή την εγγραφή (edu.11lyk-patras.mysch.gr) ρυθμίστηκε και το Let'sEncrypt.

Ρύθμισα μέσω crontab και lftp το back_up της ΒΔ στον χώρο του ΠΣΔ, καθώς και το update-upgrade του server και μια επανεκκίνηση την ημέρα.


Προς το παρόν δουλεύει μια χαρά!!! Ίδωμεν...


Κάποιος συνάδελφος για να μην έχει προβλήματα downtime από το ΠΣΔ έχει αγοράσει cloud server.


cpp

Καλημέρα σε όλους...

Γιώργο δεν σε προλαβαίνουμε... Μη βιάζεσαι να απαντήσεις ./.... Μπορει να προκύψει και κάτι άλλο ώστε να το δεις συνολικά... ;D

Το ενδεχόμενο cloud server μου πέρασε από το μυαλό και σε εμένα άλλα λόγω των στοιχείων που αποθηκεύονται το ξανασκέφτηκα 

Να γράψω και κάτι άλλο που παρατήρησα παρεμπιπτόντως..
Κατά την εισαγωγή τις βαθμολογίας η ταξινόμηση  δεν γίνεται  αλφαβητικά. Όταν ο admin βλεπει τους μαθητές υπάρχει η δυνατότητα ταξινόμισης αλλά όχι στην βαθμολογία.
Δεν είναι πρόβλημα για μένα απλά το αναφέρω.

Δεν ξέρω αν άλλαξε κάτι στην τελευταία version  που ανέβασες.

Καλή συνέχεια  και καλή υπομονή με όλους εμας....
 

cpp

Παράθεση από: cpp στις 01 Φεβ 2022, 12:43:37 ΠΜ
Κατά την εισαγωγή τις βαθμολογίας η ταξινόμηση  δεν γίνεται  αλφαβητικά.


Νομίζω ότι κατάλαβα γιατί εμφανίζονται με αυτή την ταξινόμηση οι μαθητές. Στο σχολείο έχω μαθητές που δεν παρακολουθούν μαθήματα γενικής παιδείας  αλλα μόνο ειδικότητας (Εσπερινό ΕΠΑΛ). Έτσι εμφανίζονται πρώτα οι μαθητές που παρακολουθούν όλα τα μαθήματα  και μετα με νέα αλφαβητική κατάταξη οι μαθητές που παρακολουθούν μόνο τα μαθήματα ειδικότητας. Μου κάνει εντύπωση....  δεν το περίμενα...  (αν δεν κάνω λάθος).

Πάντως εξακολουθεί να μην είναι πρόβλημα για εμένα και μάλιστα ίσως είναι και βολικό.
Απλά το αναφέρω μήπως  το έχει απορία και κάποιος άλλος συνάδελφος. (προφανώς προκύπτει από την εξαγωγή από myschool των τμημάτων του μαθητή)

Θα το ελέγξω για σίγουρα πάλι αύριο.

Γεώργιος Θεοδώρου

#56
Για να υπάρχει μια λογική στους απόντες που βλέπει ο Διαχειριστής αν δεν είναι επιλεγμένο ένα τμήμα

γίνεται ταξινόμηση με βάση

  • το τμήμα και μετά
  • το  επώνυμο
  • το όνομα
  • το πατρώνυμο

Αν έχει επιλεγεί ένα τμήμα τότε η πρώτη πρώτη ταξινόμηση  (με το τμήμα) δεν φέρνει καμία αλλαγή.


Για να καταλάβετε γιατί συμβαίνει αυτό που αναφέρει ο Χρήστος θα σας εξηγήσω πως βρίσκουμε - μαντεύουμε το "βασικό" τμήμα ενός μαθητή.

Στην εισαγωγή μαθητών με το xls δεν έχουμε στήλη με το "βασικό" τμήμα ενός μαθητή. Επίσης η αναφορά από το myschool βγάζει με δική της σειρά τα τμήματα μαθητή όχι πάντα τυποποιημένη.

Για να βρούμε το "τμήμα" ενός μαθητή παίρνουμε το πρώτο από τα τμήματα του ταξινομημένα

  • κατά το μήκος των χαρακτήρων (πχ:Α1 = 2, Α1ΓΑΛΛΙΚΑ =9)
  • την Αλφαβητική σειρά πχ (Α1ΑΓΓΛΙΚΑ,  Α1ΓΑΛΛΙΚΑ)


Οπότε το βασικό τμήμα ενός που κάνει μόνο μαθήματα ειδικότητας είναι διαφορετικό από μαθητές που έχουν και Γεν Παιδείας εξού και η παρατηρηθείσα ταξινόμηση.


Μπορούμε με μια μικρή τροποποίηση στον κώδικα να κάνουμε ταξινόμηση μόνο με [Επώνυμο],[Ονομα],[Πατρώνυμο] αν κρίνετε ότι πρέπει...






Γεώργιος Θεοδώρου

Διορθώθηκε η ταξινόμηση με βάση

  • το Επώνυμο - Όνομα όταν είναι επιλεγμένο ένα τμήμα (Απουσιολόγος - Βαθμολογία)
  • το Τμήμα - Επώνυμο - Όνομα όταν ο Διαχειριστής βλέπει όλους τους απόντες μαθητές

zip: apousiologos-1-2-22


Ουσιαστικά η αλλαγή αυτή δεν επηρεάζει την λειτουργία της εφαρμογής

αλλά την κάνει ανθρώπινα πιο κατανοητή και φιλική.

spapageor

Συγχαρητήρια για την υπέροχη εφαρμογή!
Μια ερώτηση: Όταν αλλάζουμε password σε καθηγητή χάνονται οι καταχωρημένες βαθμολογίες του;


spapageor

Ευχαριστώ για την απάντηση.
Μου συνέβη να χαθούν καταχωρημένες βαθμολογίες 2 συναδέλφων γιατί χρειάστηκε να αλλάξω password στον ένα και μια ανάθεση στον άλλον. Δηλαδή μετά από νέα αποθήκευση.

Γεώργιος Θεοδώρου

#61
Διορθώθηκε!!!

Κατά την ενημέρωση καθηγητή από τον Διαχειριστή
διαγράφονταν οι αναθέσεις του καθηγητή και ξαναπροστίθονταν ως νέες
με αποτέλεσμα να υπάρχει ασυνέχεια των δεδομένων
και να "χάνονται" οι καταχωρισμένοι βαθμοί.

Πλέον δεν υφίσταται τέτοιο πρόβλημα.

ΠΡΟΣΟΧΗ:
Οι βαθμοί διαγράφονται αν αφαιρέσουμε μια ανάθεση (τμήμα -> μάθημα) από καθηγητή ( σκόπιμα ή από λάθος).
Αν τους αφήναμε θα δημιουργούνταν διπλοεγγραφές βαθμών!


Τροποποίηση 16/2/22


ΠΩΣ ΛΕΙΤΟΥΡΓΕΙ

Αν προστεθεί μια ανάθεση (τμήμα -> μάθημα) που είχε άλλος καθηγητής τότε αφαιρείται η ανάθεση από τον παλιό καθηγητή και προστίθεται στον καινούριο καθηγητή.

Αν διαγραφεί μια ανάθεση  (τμήμα -> μάθημα) τότε

  • αν δεν υπάρχουν καταχωρισμένοι βαθμοί ΔΙΑΓΡΑΦΕΤΑΙ. Έτσι γίνονται πιθανές διορθώσεις στις λανθασμένες αναθέσεις μέχρι να περαστούν βαθμοί.
  • αν υπάρχουν καταχωρισμένοι βαθμοί ΑΠΟΔΕΣΜΕΥΕΤΑΙ η ανάρτηση από τον καθηγητή χωρίς να διαγραφεί

Την ανάθεση που αποδεσμεύτηκε τη βλέπει ( και τους βαθμούς ) ο Διαχειριστής
και μπορεί να την αναθέσει εκ νέου στον ίδιο ή άλλο καθηγητή χωρίς να χαθούν οι βαθμοί.


Κατεβάστε το ενημερωμένο apousiologos-15-2-22

Πολλά ευχαριστώ στον Σπύρο spapageor που εντόπισε το bug.

Παρακαλώ ενημερώστε αν κάτι δεν δουλεύει όπως πρέπει.

Γιώργος Κολόμβος

#62
Καλησπέρα,
Υπάρχει κάποιος τρόπος να ελέγξω αν στην τρέχουσα βαθμολογική περίοδο π.χ. Β τετράμηνο, υπάρχουν κάποια μαθήματα για τα οποία δεν έχει εισαχθεί ακόμη βαθμολογία στην εφαρμογή; Το ρωτάω γιατί, ενώ βλέπω ότι οι περισσότεροι συνάδελφοι έχουν καταχωρήσει την βαθμολογία του Β' τετραμήνου, ωστόσο, δεν ξέρω αν υπάρχουν κάποιοι που ακόμη δεν την έχουν εισάγει, ώστε να συνεννοηθώ μαζί τους... Π.χ. στο Myschool υπάρχει η αναφορά "Κατάσταση μαθητών που δεν έλαβαν βαθμό (σε βαθμολογική περίοδο)", οπότε αν όλοι οι μαθητές κάποιου τμήματος δεν έχουν βάλει βαθμό σε κάποιο μάθημα τότε συμπεραίνω ότι σε αυτό το μάθημα ο εκπαιδευτικός δεν έχει δώσει βαθμολογία. Αλλά θα ήταν πολύ βολικό να το ξέρω στην εφαρμογή "απουσιολόγος", πριν τα βάλω στο MySchool.

Γεώργιος Θεοδώρου

Προσωπικά κάνω εξαγωγή - ενημέρωση των 187(Α-Β-Γ).xls

Εκεί βλέπω τι λείπει ...

Πρέπει όμως να βρεις μετά τα κενά κελιά σε ποιο μάθημα - τμήμα αντιστοιχούν!



Ένας άλλος τρόπος είναι

να επιλέξεις ένα μάθημα ενός τμήματος πχ Α1-> Άλγεβρα

και να πατήσεις στο ματάκι για να δεις και τους άλλους βαθμούς του τμήματος.


Αν το κάνεις για όλα τα τμήματα έχεις τις πληροφορίες που ζητάς

Γιώργος Κολόμβος

#64
Έχω ανεβάσει τις βαθμολογίες της Γ' λυκείου από τον "Απουσιολόγο" στο MySchool, έχουμε κάνει και ελέγχους για να επαληθεύσουμε ότι τα γραπτά και οι βαθμοί που έχουν εισαχθεί στο Myschool συμφωνούν και  περιμένουμε να ενεργοποιηθεί στο MySchool η δυνατότητα έκδοσης αποτελεσμάτων της Γ' λυκείου...

Εν τω μεταξύ οι συνάδελφοι συνεχίζουν να καταχωρίζουν τις βαθμολογίες των γραπτών των τάξεων Α και Β στον "Απουσιολόγο". Όλα πάνε τέλεια ως εδώ!!!

Το πρόβλημα ξεκινάει όταν σε αυτή τη φάση, κάποιοι συνάδελφοι μπουν στον "Απουσιολόγο" για να κάνουν κάποιες διορθώσεις σε βαθμούς γραπτών της Γ' λυκείου... Τους είχα ενημερώσει ότι οι γραπτοί βαθμοί της Γ τάξης έχουν ήδη περάσει στο MySchool κι ότι αν διορθώσουν τώρα στον "Απουσιολόγο" κάποιο βαθμό, η διόρθωση αυτή δεν θα περάσει στο MySchool, αλλά είναι φυσιολογικό κάποιοι να μπερδευτούν με τόσες λεπτομέρειες ή να μην δώσουν σημασία και από τη στιγμή μάλιστα που ο "Απουσιολόγος" τους επιτρέπει να κάνουν διορθώσεις, να θεωρήσουν ότι η διόρθωση "καταχωρίστηκε επιτυχώς". Αντιλαμβάνεστε ότι αυτό μπορεί να φέρει πολλά μπερδέματα!

Ευτυχώς κάποιοι συνάδελφοι που έκαναν τέτοιες διορθώσεις με ενημέρωσαν και το μόνο που σκέφτηκα να κάνω ήταν να διακόψω αμέσως τη δυνατότητα καταχώρησης βαθμών στον "Απουσιολόγο", τουλάχιστον μέχρι να ολοκληρωθεί η έκδοση των αποτελεσμάτων της Γ' τάξης. Τώρα όμως γκρινιάζουν οι συνάδελφοι που θέλουν εντωμεταξύ να συνεχίσουν την καταχώρηση των βαθμών των τάξεων Α' και Β' στον "Απουσιολόγο"...

Καλό θα ήταν, αν είναι δυνατόν, η ρύθμιση "Κατάθεση βαθμολογίας / Βαθμολογική περίοδος" στο "Απουσιολόγο" να γίνεται ξεχωριστά για κάθε τάξη, έτσι ώστε να μπορούμε π.χ. να απενεργοποιήσουμε την καταχώρηση βαθμολογιών στην Γ' λυκείου αλλά να την επιτρέψουμε για τις τάξεις Α' και Β'.

Γιώργο τι λες, μπορεί να γίνει;

Γεώργιος Θεοδώρου

Δεν νομίζω ότι χρειάζεται τόση "λεπτομέρεια"


Σημειώνω ότι το "πρόβλημα" υπάρχει μόνο τώρα στα γραπτά που η Γ Λυκείου τελειώνει νωρίτερα.

Στο Α & Β Τετράμηνο και στο Γυμνάσιο που όλοι τελειώνουν μαζί δεν υφίσταται !!!


Ο Απουσιολόγος έκανε την δουλειά του για την Γ τάξη. Πήραμε τους βαθμούς.

ΑΓΝΟΟΥΜΕ ΤΟ ΤΙ ΚΑΝΟΥΝ ΠΛΕΟΝ ΟΙ ΣΥΝΑΔΕΛΦΟΙ ΣΤΗΝ ΒΑΘΜΟΛΟΓΙΑ ΤΗΣ Γ ΤΑΞΗΣ

Αν κάποιος θέλει αλλαγές απευθύνεται στον χειριστή του myschool ( έτσι τουλάχιστον κάνουμε εμείς στο σχολείο μας)



Τώρα το αν οι συνάδελφοι δεν ακούν αυτά που τους λέμε είναι άλλο πρόβλημα ( επικοινωνίας ή ... )

Τι πάει να πει αφού ήταν ανοιχτό και με άφησε, έκανα αλλαγές;

Το ίδιο μου είπε και μένα ένας καθηγητής για τα διαγωνίσματα! Αφού ήταν ανοικτό έβαλα διαγώνισμα τις 20 Μαΐου !!!


Αυτό που ζητάς μπορεί να γίνει.

Το ερώτημα είναι αν χρειάζεται η επιπλέον πολυπλοκότητα!!!

Γιώργος Κολόμβος

Τι ακριβώς κάνουν οι δύο ρυθμίσεις:
 - Οι ώρες να είναι ξεκλείδωτες
 - Επιτρέπεται στους καθηγητές να ξεκλειδώνουν τις ώρες
Υπάρχει τρόπος να κλειδώσει ο διαχειριστής τις απουσίες σε κάποια τμήματα ή κάποιες μέρες;   

Γεώργιος Θεοδώρου

Παράθεση από: Γιώργος Κολόμβος στις 25 Οκτ 2022, 04:44:19 ΜΜΤι ακριβώς κάνουν οι δύο ρυθμίσεις:
 - Οι ώρες να είναι ξεκλείδωτες
 - Επιτρέπεται στους καθηγητές να ξεκλειδώνουν τις ώρες
Υπάρχει τρόπος να κλειδώσει ο διαχειριστής τις απουσίες σε κάποια τμήματα ή κάποιες μέρες; 


Οι ώρες να είναι ξεκλείδωτες
  • ΟΧΙ σημαίνει ότι είναι ανοιχτή για κλικάρισμα μόνο η τρέχουσα ώρα
  • ΝΑΙ σημαίνει ότι είναι ανοιχές για κλικάρισμα όλες οι ώρες

Επιτρέπεται στους καθηγητές να ξεκλειδώνουν τις ώρες (εφόσον δεν είναι ξεκλείδωτες)
  • ΝΑΙ εμφανίζει κουμπί [Ξεκλείδωμα] και πατώντας ξεκλειδώνουν
  • ΟΧΙ δεν εμφανίζει κουμπί [Ξεκλείδωμα]

Οι καθηγητές
  • βλέπουν μόνο την τρέχουσα ημέρα
  • μόνο τα τμήματά τους
  • Αν οριστεί μια ημέρα πχ 19/10/2022 βλέπουν τη συγκεκριμένη
  • Αν οριστούν ημέρες πίσω πχ 3 μπορούν να επιλέξουν μέχρι 3 ημέρες πίσω ( 25/10, 24/10, 23/10)

Επίσης

Επιτρέπεται η εισαγωγή απουσιών εκτός ωραρίου
  • ΟΧΙ αν ξεπεραστεί ο χρόνος της ώρας οι καθηγητές βλέπουν την ένδειξη "εκτός ωραρίου"
  • ΝΑΙ ...


Γεώργιος Θεοδώρου

#68
Νέα version v2 του Ηλ. Απουσιολόγου

Παρακαλώ ακολουθήστε τον υπερσύνδεσμο:

https://alkisg.mysch.gr/steki/index.php?topic=9222.0

cpp

Καλημέρα σε όλους

Στην προσπάθεια να περαστούν τα οι βαθμοί των γραπτών από το αρχείο 187 στην Γ τάξη, το myschool εμφανίζει πρόβλημα στον έλεγχο του αρχείου.
Eπιστρέφει σφάλμα

1. Object reference not set to an instance of an object.
ή
2. *** Μη έγκυροι κωδικοί μαθημάτων στο αρχείο Excel: 20, 19, 20, 20, 15

Οι βαθμολογίες για τα τετράμηνα περάστηκαν με τον ίδιο τρόπο  χωρίς προβλήματα.
Επίσης αποτυγχάνει και ο έλεγχος του αρχείου  το οποίο χωρίς δεδομένα έχει εξαχθεί από
το myschool, χωρίς τις βαθμολογίες. 

Είναι πρόβλημα του myschool και όχι της Εφαρμογής. Μάλιστα το κάνει μόνο στη Γ λυκείου.

Το σχολείο είναι Εσπερινό ΕΠΑΛ. Το αναφέρω καθώς πιθανότατα σε άλλα σχολεία που δεν έχει εργ κλπ δεν θα υπάρχει πρόβλημα.

Η λύση

Στο excel για κάποιο λόγο το myschool θέλει μόνο τα μαθήματα που εξετάζονται γραπτά και θα πρέπει τα υπόλοιπα, όπως εργαστήρια, να διαγραφούν. Μάλλον για αυτό το  σφάλμα  Object reference not set ....

Ευχαριστώ για άλλη μια φορά Γιώργο για το ενδιαφέρον και την ενασχόληση.
Επίσης thanks και στον Δημήτρη τον συνάδελφο πληροφορικό στο σχολείο που τελικά αντιλήφθηκε το πρόβλημα!