Ηλεκτρονικό Πρωτόκολλο Σχολείου

Ξεκίνησε από Γεώργιος Θεοδώρου, 27 Ιαν 2017, 08:02:03 ΜΜ

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

Πείτε μας που έχετε στήσει το Ηλεκτρονικό πρωτόκολλο

webhost.sch.gr
2 (11.8%)
cloud άλλο
0 (0%)
Η/Υ με win+xampp
7 (41.2%)
Η/Υ με win+wamp
0 (0%)
Η/Υ με Linux+xampp
0 (0%)
Η/Υ με Linux+lamp
7 (41.2%)
χωρίς RAID
2 (11.8%)
RAID1
1 (5.9%)
NAS
2 (11.8%)

Σύνολο ψηφοφόρων: 17

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

Ηλεκτρονικό Πρωτόκολλο Σχολείου

  •     Πρωτοκόλληση Εισερχομένων και Εξερχομένων εγγράφων
  •     Επισύναψη Αρχείων και καθορισμός Ημερομηνίας Διατήρησης - Καταστροφής ανάλογα με το Φάκελο Αρχειοθέτησης Φ.
  •     Φάκελοι Αρχειοθέτησης και Χρόνος Διατήρησης Εγγράφων. Δυνατότητα τροποποίησης ανάλογα με τις εκάστοτε εγκυκλίους
  •     Αναζήτηση Πρωτοκόλλου, Ανάκτηση - Διαγραφή συνημμένων αρχείων
  •     Εκτύπωση Απόδειξης Κατάθεσης Πρωτοκόλλου
  •     Εκτύπωση Ηλεκτρονικού Πρωτοκόλλου για βιβλιοδέτηση
  •     Εκτύπωση λίστας εγγράφων για Εκκαθάριση Αρχείου μετά τη λήξη Διατήρησης αυτών
  •     Backup βάσης δεδομένων, εύκολο κατέβασμα για φύλαξη αυτών
  •     Διαχείριση Χρηστών με ρόλους "Διαχειριστής", "Αναθέτων", "Συγγραφέας", "Αναγνώστης" και ανάλογη πρόσβαση
  •     Απλό σύστημα αναθέσεων της Διεκπεραίωσης Πρωτοκόλλων και παρακολούθησης αυτών
  •     Πρωτοκόλληση email: Σύνδεση με λογαριασμό email. Επισκόπηση εισερχομένων μηνυμάτων και των συνημμένων αρχείων και Πρωτοκόλληση με αποθήκευση των επιλεγμένων




Δείτε βίντεο με τη χρήση του Ηλ.Πρωτ.



Δοκιμή Demo  (username  password) (admin 12345678) (writer 123456) (reader 123456)

Οδηγίες χρήσης

Πληροφορίες - εγκατάσταση




Γνωστά "προβλήματα" (bugs)  :o
  • Στα Windows αν πλοηγηθούμε με τον file-explorer στο Φάκελο storage/app/arxeio  όπου αποθηκεύονται τα επισυναπτόμενα αρχεία, τα ελληνικά ονόματα των φακέλων και αρχείων εμφανίζονται με παράξενους χαρακτήρες. Αυτό οφείλεται στο ότι τα Windows δεν υποστηρίζουν πλήρως την κωδικοποίηση utf-8. Δεν υφίσταται καμιά επίπτωση στη λειτουργία του προγράμματος.



ΕΓΚΑΤΑΣΤΑΣΗ ΗΛ. ΠΡΩΤΟΚΟΛΛΟΥ

Παράθεση από: Γεώργιος Θεοδώρου στις 07 Απρ 2019, 08:30:52 ΜΜΟδηγός εγκατάστασης του Ηλ. Πρωτοκόλλου σε Ubuntu 18.04:

Οδηγίες εγκατάστασης

Σχετικό βίντεο: https://youtu.be/7x3zE0tEaLI

Παράθεση από: Γεώργιος Θεοδώρου στις 08 Απρ 2019, 10:51:51 ΠΜΤο Ηλ. Πρωτόκολλο σε win7 και νεότερα

Οδηγίες εγκατάστασης

Σχετικό βίντεο: https://youtu.be/e79OPKagz9A

Παράθεση από: Γεώργιος Θεοδώρου στις 23 Μαΐου 2020, 01:49:27 ΜΜΒίντεο εγκατάστασης του Ηλ. Πρωτοκόλλου σε windows 10

https://youtu.be/xvDHwjHb7wc




zip για εγκατάσταση στον webhost

https://www.dropbox.com/sh/sd00ikjn311g5hu/AABduqTihxHQH0StOs5HEI4wa?dl=0

Το protocolRoot στον κεντρικό κατάλογο
Το protocol στον κατάλογο httpdocs


Θοδωρής Καρτσιώτης

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

Μπράβο στον κ. Θεοδώρου...
ΥΠΛΗΝΕΤ Πιερίας | https://plinetpierias.gr

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

#2
Τροποποιήθηκε το select box (λίστα επιλογής) όπου επιλέγεται ο φάκελος του Πρωτοκόλλου και πλέον έμφανίζει και την περιγραφή.
Το select box έχει πλάτος 500px και ένα πλαίσιο κειμένου όπου πληκτρολογώντας χαρακτήρες φιλτράρονται οι εγγραφές



Ευχαριστώ τον teokarts για τις υποδείξεις και τα καλά του λόγια.

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

#3
Μπράβο σας! Πολύ καλή εφαρμογή.

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

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

Επίσης μπορεί να υπάρχει πεδίο στις εγγραφές για τον τρόπο παραλαβής ενός εγγράφου. Δηλαδή με κατάθεση ή αλληλογραφία ή fax ή e-mail

Και πάλι μπράβο!
Powered by Elxis : LabSchool.mysch.gr

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

#4
Προστέθηκε και ορίστηκε ως αρχική σελίδα μια λίστα με τα καταχωρισμένα Πρωτόκολλα σε φθίνουσα σειρά η οποία ανανεώνεται αυτόματα σε χρονικό διάστημα που ορίζεται στις ρυθμίσεις (αρχική τιμή με την εγκατάσταση 5 λεπτά)




Προστέθηκε η επιλογή "Ασφαλής, όχι διπλότυπος Νέος Αρ.Πρωτοκόλλου" -> ΝΑΙ, ΟΧΙ
Αν ΝΑΙ τότε ο Αρ.Πρωτοκόλλου υπολογίζεται την ώρα της Αποθήκευσης και έτσι σε συνθήκες πολλών χρηστών και ταυτόχρονης καταχώρισης δεν υπάρχουν διενέξεις.
Το Νέο πρωτόκολλο παίρνει τον επόμενο διαθέσιμο Αρ.Πρωτοκόλλου ο οποίος υπάρχει περιπτωση να διαφέρει από αυτόν που βλέπουμε την ώρα της πληκτρολόγησης των δεδομένων.




Ευχαριστώ το Δημήτρη Κανά για τις υποδείξεις του.

Όσο αφορά την προσθήκη πεδίου για τον τρόπο παραλαβής ενός εγγράφου προτείνω προς το παρόν τη χρήση ενός υπάρχοντος πεδίου πχ: Παρατηρήσεις, Λέξεις Κλειδιά, ...



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

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

Έχω κάνει εκ νέου εγκατάσταση σε XAMPP αλλά υπάρχει πρόβλημα με τη λίστα εμφανίζοντας το μήνυμα "Whoops, looks like something went wrong". Όλα τα υπόλοιπα φαίνεται πως δουλεύουν άψογα.
Powered by Elxis : LabSchool.mysch.gr

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

Ξανακατέβασέ το πάλι σε παρακαλώ. Μόλις πριν από λίγο το εκσφαλμάτωσα. Ας όψεται η επιτήρηση στις Πανελλήνιες.
Σου λέιπει ένα αρχείο το /resources/views/protocolList.blade.php
Αν θές κατέβασε εναλλακτικά μόνο το παραπάνω αρχείο.
Ήταν δικό μου σφάλμα όταν ενημέρωσα το github
Ευχαριστώ

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

Το πρόβλημα διορθώθηκε. Και πάλι ευχαριστούμε. Να στε καλά!

Θα το δουλέψω σε κανονικές συνθήκες και αν κάτι χρειαστεί θα επικοινωνήσω εκ νέου μαζί σας.
Powered by Elxis : LabSchool.mysch.gr

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

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

Έλεγχος για ενημερώσεις -> ΝΑΙ,ΟΧΙ


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






Αν ο Διαχειριστής επιθυμεί πρέπει  ΧΕΙΡΟΚΙΝΗΤΑ να κατεβάσει τον κώδικα και να ενημερώσει την εγκατάσταση αφού πρώτα κρατήσει backup από τα υπάρχοντα αρχεία και ΒΔ.

Επισκεφτείτε την ιστοσελίδα:  https://github.com/g-theodoroy/electronic_protocol/commits/master

Εκεί θα δείτε όλες τις αλλαγές (commits) που έχουν ανέβει ταξινομημένες από τις πρόσφατες στις παλαιότερες.

Αν κάνετε κλικ σε κάποια από αυτές θα δείτε τις διαφορές στον κώδικα και θα αποφασίσετε τι πρέπει να αλλάξετε:

  • θα κατεβάσετε πάλι όλο το project,
  • θα αντικαταστήσετε ένα αρχείο με την νέα του εκδοχή ή
  • θα τροποποιήσετε μόνο στο σημείο που χρειάζεται


Τέλος είτε ενημερώσετε την εγκατάσταση είτε όχι για να μην εμφανίζεται το μήνυμα που ειδοποιεί για ενημέρωση κάντε κλικ στο menu: Διαχείριση->Ενημερώθηκε



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

Θα το έγραφα... Ενημέρωση για αλλαγές στον κώδικα έπρεπε να υπάρχει. Και για μια ακόμη φορά κάνατε καταπληκτική δουλειά.

Επίσης πείραξα στην εγκατάστασή μου τον κώδικα για την εμφάνιση στη λίστα αφού Θέμα - περιγραφή - παραλήπτης δε ξεχωρίζουν ιδιαίτερα (αφού συνήθως το θέμα ενός εγγράφου περιλαμβάνει παραπάνω από 3-4 λέξεις). Στο θέμα έβαλα bold και μεγαλύτερη απόσταση μεταξύ των γραμμάτων. Θα πρότεινα, εκτός από το προηγούμενο, αν θες να βάλεις μικρές αποστάσεις μεταξύ των πεδίων και μεταξύ των εγγραφών για να είναι ευδιάκριτα τα μέρη και όπου κρίνετε έντονα ή ακόμα και μέσα σε πλαίσιο ορισμένα άλλα πεδία στη λίστα. Η λίστα και η δυνατότητα εκτύπωσης σε μορφή βιβλίου είναι από τα πιο δυνατά χαρτιά της εφαρμογής.
Powered by Elxis : LabSchool.mysch.gr

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

#10
Συνεχίζουμε ακάθεκτοι ...

Τροποποιήθηκε η λίστα Πρωτοκόλλου ώστε

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



Όλα αυτά με την πολύτιμη βοήθεια του Δημήτρη Κανά.
Ευχαριστώ πολύ.



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

Γίνεται όλο και καλύτερο...

Συνεχίζουμε τη δοκιμή μας και εδώ είμαστε....

Σας ευχαριστούμε και για την άμεση επικοινωνία.
Powered by Elxis : LabSchool.mysch.gr

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

Εξαιρετική προσπάθεια. Ευχαριστούμε πολύ.
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

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

mitsospap

Μπραβο για την προσπαθεια απαλαγης απ την χαρτουρα και το ωραιο λογισμικο που φτιαξατε.

Οταν ημουν αποσπασμενος σε Διευθυνση εκπαιδευσης, δεν αφηναν καταργηση του παλιου πρωτοκολλου και θελαν ενημερωση ηλεκτρονικου και βιβλιου ταυτοχρονα. Εχετε ψαξει τον νομο,επιτρεπεται η καταργηση του βιβλιου πρωτοκολλου και να εχει καποιο σχολειο ΜΟΝΟ ηλεκτρονικο;
Η νομοθεσια τι λεει;

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

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

Τα σχετικά της απόφασης του ΥΠΕΠΘ για το ηλεκτρονικό πρωτόκολλο μπορούν να βοηθήσουν για την νομική κάλυψη της χρήσης του.

http://www.minedu.gov.gr/publications/docs2015/050116_apofasi_protokolo.pdf
Powered by Elxis : LabSchool.mysch.gr

Γιάννης Γαϊδαρτζής

Καλημέρα Συνάδελφε,

Εγκατέστησα την εφαρμογή σε ubuntu server 18.04 και μετά την δοκιμή μου εμφάνισε τα παρακάτω. Το μόνο που άλλαξα είναι τα ports του apache (8081, 444).
Στην εγκατάσταση μου έβγαλε κάποια μηνύματα(βλέπε συνημμένο).



*/ /* |-------------------------------------------------------------------------- | Register The Auto Loader |-------------------------------------------------------------------------- | | Composer provides a convenient, automatically generated class loader for | our application. We just need to utilize it! We'll simply require it | into the script here so that we don't have to worry about manual | loading any of our classes later on. It feels nice to relax. | */ require __DIR__.'/../bootstrap/autoload.php'; /* |-------------------------------------------------------------------------- | Turn On The Lights |-------------------------------------------------------------------------- | | We need to illuminate PHP development, so let us turn on the lights. | This bootstraps the framework and gets it ready for use, then it | will load up this application so that we can run it and send | the responses back to the browser and delight our users. | */ $app = require_once __DIR__.'/../bootstrap/app.php'; /* |-------------------------------------------------------------------------- | Run The Application |-------------------------------------------------------------------------- | | Once we have the application, we can handle the incoming request | through the kernel, and send the associated response back to | the client's browser allowing them to enjoy the creative | and wonderful application we have prepared for them. | */ $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); $response = $kernel->handle( $request = Illuminate\Http\Request::capture() ); $response->send(); $kernel->terminate($request, $response);
Πρώην ΚΕΠΛΗΝΕΤ

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

#16
Στις πρόσφατες διανομές άλλαξε ο εξ ορισμού τρόπος σύνδεσης στη mysql - mariadb

Υπάρχουν δύο εναλλακτικές λύσεις:

--------------------------------------------------------------------------------------------------

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

στο αρχείο .env
DB_USERNAME=root protocoluser
DB_PASSWORD=p@ssw@rd νεο pass

config/database.php
'database' => env('DB_DATABASE', 'd@t@b@seprotocoldb'),
'username' => env('DB_USERNAME', 'rootprotocoluser'),
'password' => env('DB_PASSWORD', 'p@ssw@rdνεο pass'),

------------------------------------------------------------------------------------------------

H άλλη λύση που συνήθως υλοποιώ (μέχρι τώρα) είναι να ρυθμιστεί η  mysql να δέχεται είσοδο από το χρήστη root

# sudo mysql -u root

>USE mysql;
>UPDATE user SET plugin='mysql_native_password' WHERE User='root';
>FLUSH PRIVILEGES;
>exit;

-----------------------------------------------------------------------------------------------------------

Το script για εγκατάσταση σε ubuntu ενημερώθηκε

Ευχαριστώ πολύ
Στη διάθεσή σας




Γιάννης Γαϊδαρτζής

Ευχαριστώ για τη γρήγορη ανταπόκριση. Με το νέο script λειτουργεί κανονικά.
Πρώην ΚΕΠΛΗΝΕΤ

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

#18
Δείτε ένα βίντεο για τη χρήση του Ηλεκτρονικού Πρωτοκόλλου

https://youtu.be/Xl6qhbJWTGs





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

Γιώργο για να προσθέσω μια απλή σελίδα στο home θα πρέπει (όπως home/list)...

-------------------------
web.php (routes)

Route::get('/home/neaselida','neocontroller@neafunction')->name('neaselida');

-----------------------
Http\Controllers και neocontroller

class neocontroller extends Controller
{
    public function neafunction()
   {
      return view('neaselida');
    }
}

με ονομασία neaselida.blade.php στο φάκελο views..

Γιατί εμένα μου εμφανίζει πάντα...

Sorry, the page you are looking for could not be found.

NotFoundHttpException in Handler.php line 113
ModelNotFoundException in Builder.php line 314

Βέβαια όποιος άλλος μπορεί... ας βοηθήσει...
Powered by Elxis : LabSchool.mysch.gr

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

Αγαπητέ Δημήτρη

Το ηλεκτρονικό πρωτόκολλο φτιάχτηκε με το framework laravel

https://laravel.com/docs/5.6


Υπάρχει αρκετή τεκμηρίωση (θέλει όμως λίγο διάβασμα!)


Ακολουθώντας τις οδηγίες της τεκμηρίωσης η πιό απλή route έχει τη μορφή:

Route::get('/home/neaselida', function () {
    return 'Hello World home - neaselida';
});


ή

Route::get('/neaselida', function () {
    return 'Hello World neaselida';
});



Θα τυπώσουν αντίστοιχα:

Hello World home - neaselidα
Hello World neaselida




Για καλύτερη οργάνωση η function() μπορεί να περιέχεται σε ένα Controller.

Το Ηλ Πρωτόκολλο έχει τους ακόλουθους Controllers:

Auth\LoginController
Auth\RegisterController
Auth\ForgotPasswordController
Auth\ResetPasswordController

και

UserController
KeepvalueController
ProtocolController
ConfigController






Αν θέλεις να έχεις μια νέα σελίδα φτιάξε σε ένα υπάρχοντα controller πχ Protocolcontroller μια νέα function πχ

public function neaselida(){
     return 'Hello World home - neaselida from ProtocolController';
}



Η route που θα οδηγεί σε αυτή θα πάρει τη μορφή:

Route::get('/neaselida','ProtocolController@neaselida');
ή αν θέλεις
Route::get('/home/neaselida','ProtocolController@neaselida');

στο web.php




Ακολούθως πρέπει να ρυθμιστεί η πρόσβαση από τους χρήστες:

Στη γραμμή 74 του ProtocolController προσθέτεις στον πίνακα except τη neaselida για πρόσβαση από όλους (Middleware)

$this->middleware('writer:home/list', ['except' => ['index', 'indexList', 'getFileInputs', 'gotonum', 'download', 'find', 'getFindData', 'printprotocols', 'printed', 'about',  'neaselida']]);



Τελικά το περιεχόμενο της σελίδας θα πρέπει να διαμορφωθεί:

παίρνοντας δεδομένα από τη ΒΔ με το εργαλείο Eloquent
παρουσιάζοντάς τα με το εργαλείο blade



θέλει (λίγο?) διάβασμα!

Τις καλησπέρες μου
Γεώργιος Θεοδώρου

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

Γεια σου Γιώργο. Σ` ευχαριστώ για την άμεση απάντηση. Εδώ και λίγες ημέρες μελετάω το framework laravel και μου κάνει εντύπωση που δεν μπορώ να εφαρμόσω κάτι τόσο απλό στο πρωτόκολλο.

1. Δημιουργία mylist.blabe.php στο views με π.χ.

@extends('layouts.app')

@section('content')

<h2>Welcome To Laravel</h2>

@endsection


2. web.php στο rootes

Route::get('/home/mylist','ProtocolController@mylist');


3.ProtocolController.php

public function mylist(){
		
        return view('mylist');
		
    }


και

$this->middleware('writer:home/list', ['except' => ['index', 'indexList', 'getFileInputs', 'gotonum', 'download', 'find', 'getFindData', 'printprotocols', 'printed', 'about', 'mylist']]);


κι όμως...

http://localhost/e-protocol/home/mylist

Sorry, the page you are looking for could not be found.

Έκανα και php artisan route:clear αλλά το ίδιο...

Τι ξέχασα να κάνω;
Powered by Elxis : LabSchool.mysch.gr

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

Στο web.php

βάλε τη route

Route::get('/home/mylist','ProtocolController@mylist');

στη γραμμή 59 πριν από το

Route::get('/home/{protocol}','ProtocolController@index');


Ο μηχανισμός routing εκτελεί την πρώτη route που θα ταιριάξει ... ξεκινώντας από πάνω προς τα κάτω.

Αν η /home/list ή /home/mylist μπούν μετά από το /home/{protocol}

τότε εκτελείται η /home/{protocol} και ψάχνει να βρεί πρωτόκολλο με κωδικό mylist (που όντως δεν υπάρχει !!!)


Φίλε Δημήτρη τα χαζοκούτια δεν καταλαβαίνουν ... και πολλά !!!


Με εκτίμηση ...



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

Γιώργο θα μας  :D τα χαζοκούτια... αν και λογικό δεν πήγε το μυαλό μου... και είχα πραγματικά  :D γιατί το σωστό δε μπορούσε να δουλέψει...

Αρχή είναι ακόμα!!! Θα σε ξανα-ενοχλήσω αν κολλήσω ξανά κι αν έχεις χρόνο θα περιμένω τα φώτα σου. Αλλά για κώδικα μήπως να στείλω pm... για να μη χαλάσω το περιεχόμενο του θέματος...

Laravel... νομίζω πως είναι ότι καλύτερο κυκλοφορεί και άργησα αρκετά να το ανακαλύψω...

Καλό βράδυ!
Powered by Elxis : LabSchool.mysch.gr

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

Γιώργο, στο XAMPP, αν ορίσουμε το Εκτελέσιμο αρχείο της mysqldump στον server τη διαδρομή "c:\xampp\mysql\bin\mysqldump.exe" δε δουλεύει το backup. Είναι κάτι άλλο που πρέπει να κάνουμε;
Powered by Elxis : LabSchool.mysch.gr

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

Ο χαρακτήρας "\" χρησιμοποιείται από την php σαν χαρακτήρας "escape".

Αν θέλουμε να τον συμπεριλάβουμε σε ένα string πρέπει να τον κάνουμε escape.

Δοκίμασε τα παρακάτω:

"c:\\xampp\\mysql\\bin\\mysqldump.exe"
"c:/xampp/mysql/bin/mysqldump.exe"

Στο πρώτο κάνω escape τον χαρακτήρα "\" slash των windows με "\\".
Στο δεύτερο χρησιμοποιώ το  "/", χαρακτήρα slash των linux και περιμένω να λύσει το πρόβλημα το laravel.

Δεν είχα χρόνο να τα δοκιμάσω!!!



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

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

Αν πειράξουμε λίγο το ConfigController μήπως δούμε την αιτία;
Powered by Elxis : LabSchool.mysch.gr

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


Η δημιουργία backup στα windows διορθώθηκε 

:angel: Ομολογώ ότι σαν χρήστης  linux δεν έδωσα τη δέουσα σημασία για τα windows-xampp!!!  :angel:


Ευτυχώς ο κ. Κανάς Δημήτρης επίμονα με υπομονή τεστάρει το Ηλ.Πρωτόκολλο.

Ευχαριστώ πολύ Δημήτρη

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

Γιώργο είναι από τα καλύτερα εργαλεία για το σχολείο. Νομίζω πως όποιος δε το δοκιμάσει... χάνει.

Ακόμα και σε xampp δουλεύει άψογα και σε τοπικό δίκτυο. Backup τη βάση με μια κίνηση και γενικότερο καθημερινό προγραμματισμένο backup σε άλλο δίσκο με μια απλή εφαρμογή windows για αντίγραφα ασφαλείας.

Με λίγη γνώση laravel έκανα "αυτοσχέδιες" λειτουργικές λίστες 1) Για τα ημερήσια πρωτόκολλα 2) Με πρωτόκολλα που ανατέθηκαν στον τρέχοντα χρήστη 3) Με πρωτόκολλα που ανατέθηκαν στον τρέχοντα χρήστη και έχουν διεκπεραιωθεί. Ένα μικρο-σύστημα αναθέσεων που χρησιμοποιούμε. Αλλά θέλει ακόμα πολύ διάβασμα και πειραματισμό!

Θα είμαστε σε επαφή!
Powered by Elxis : LabSchool.mysch.gr

Θοδωρής Καρτσιώτης

Ναι, είναι το καλύτερο εργαλείο....

Το χρησιμοποίησα περσι όλη τη χρόνια και το άφησα "κληρονομιά" στο σχολείο που ήμουν.

Φέτος το εγκατέστησα, μέσω XAMPP, στο Μουσικό Σχολείο Κατερίνης όπου υπηρετώ και είμαστε όλοι ενθουσιασμένοι με τη λειτουργικότητά του. Η... χαρτούρα μειώθηκε σε εντυπωσιακό βαθμό.

Απλά, μια στατική ip στον υπολογιστή που βρίσκεται η βάση και ο πυρήνας του προγράμματος και πρόσβαση από τους άλλους υπολογιστές του τοπικού δικτύου μέσω της IP.

Φυσικά, σημειώνω και εφιστώ την προσοχή, για τα τακτικά backup του υπολογιστή που βρίσκεται το Ηλ. Πρωτόκολλο.

Γενικά μιλώντας, θεωρώ πως είναι μια εφαρμογή που πρέπει να την χρησιμοποιήσουν όλα τα σχολεία.
ΥΠΛΗΝΕΤ Πιερίας | https://plinetpierias.gr

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

Παράθεση από: teokarts στις 31 Οκτ 2018, 10:57:52 ΠΜ

Απλά, μια στατική ip στον υπολογιστή που βρίσκεται η βάση και ο πυρήνας του προγράμματος και πρόσβαση από τους άλλους υπολογιστές του τοπικού δικτύου μέσω της IP.


Κι αυτό από τα SOS της εγκατάστασης.
Powered by Elxis : LabSchool.mysch.gr

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

#31
Γιώργο αν έχεις χρόνο θα πρότεινα να βάλεις και να δουλέψεις (καλύτερα από εμένα) τις αναθέσεις. Στην εικόνα σου δείχνω κάποιους πειραματισμούς μου όπως σου έγραψα (δε ξέρω αν και κανένας άλλος έχει προτάσεις).

1. Νέα εγγραφή, Λίστα πρωτοκόλλου, Σημερινά πρωτόκολλα, Προσωπική λίστα, Προσωπική λίστα με διεκπεραιωμένα.

2. Μια αρίθμηση για το πλήθος των π.χ. σημερινών εισερχομένων (είχαμε σήμερα 30 εισερχόμενα, έχω να διεκπεραιώσω 10 κ.α.).

3. Εμφάνιση του συγγραφέα που παίρνει ή τροποποιεί τελευταίος την εγγραφή.

4. Αν γράψει κάποιος την ΑΔΑ στο πεδίο τότε αυτόματα γίνεται σύνδεσμος προς προβολή του αρχείου σε νέο παράθυρο.
Powered by Elxis : LabSchool.mysch.gr

Μανόλης Μεταξάκης

Καλησπέρα!
Το ηλεκτρονικό πρωτόσκολο φαίνεται μία πολύ ενδιαφέρουσα εφαρμογή την οποία θα ήθελα να δοκιμάσω!
Θέλω όμως να ρωτήσω πού και πώς τροποποιώ τις παραμέτρους της mysql όταν για κάποιο λόγο τις αλλάξω στον server. (πχ database name, user name, user password ΚΑΙ ΚΥΡΙΩΣ το port 3306 σε κάτι άλλο)
Αλλάζοντας απλώς ας πούμε στο Port στο  .env και στο config/database.php δεν ανταποκρίνεται.
Μάλιστα  παρατήρησα ότι αν μετονομάσω το .env και τον κατάλογο config το πρόγραμμα τρέχει κανονικά σαν να μην συμβαίνει τίποτα!
Θα πρέπει επι πλέον να κάνω κάτι;

Ευχαριστώ για την προσοχή σας!
Μανόλης Μεταξάκης 


 

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

Παράθεση από: Μανόλης Μεταξάκης στις 31 Οκτ 2018, 08:00:54 ΜΜ
Καλησπέρα!
Το ηλεκτρονικό πρωτόσκολο φαίνεται μία πολύ ενδιαφέρουσα εφαρμογή την οποία θα ήθελα να δοκιμάσω!
Θέλω όμως να ρωτήσω πού και πώς τροποποιώ τις παραμέτρους της mysql όταν για κάποιο λόγο τις αλλάξω στον server. (πχ database name, user name, user password ΚΑΙ ΚΥΡΙΩΣ το port 3306 σε κάτι άλλο)
Αλλάζοντας απλώς ας πούμε στο Port στο  .env και στο config/database.php δεν ανταποκρίνεται.
Μάλιστα  παρατήρησα ότι αν μετονομάσω το .env και τον κατάλογο config το πρόγραμμα τρέχει κανονικά σαν να μην συμβαίνει τίποτα!
Θα πρέπει επι πλέον να κάνω κάτι;

Ευχαριστώ για την προσοχή σας!
Μανόλης Μεταξάκης 


Μανόλη ακολούθησε πιστά τις οδηγίες για την εγκατάσταση της εφαρμογής και δε χρειάζεται να κάνεις κάτι άλλο για να λειτουργήσει.
Powered by Elxis : LabSchool.mysch.gr

Μανόλης Μεταξάκης

Ευχαριστώ πολύ για την άμεση ανταπόκριση!

Να αναφέρω μόνο οτι τελικά βρήκα οτι αφού αλλαχτεί το port στα παραπάνω αρχεία χρειάζεται να μετονομάσει κανείς το  bootstrap/cache/config.php σε οτιδήποτε και ΔΟΥΛΕΨΕ!!!!!!


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

#35
Καλώς ήρθες Μανόλη

Συνήθως για να λάβουν χώρα οι αλλαγές σε ρυθμίσεις του .env πρέπει να τρέξεις από cmd τις εντολές

        php artisan config:clear
        php artisan config:cache


στον φάκελο του Ηλ.Πρωτοκόλλου. Αυτό αναδημιουργεί όπως σωστά ανακάλυψες το bootstrap/cache/config.php.



Τώρα για την αλλαγή port της mysql κοίτα εδώ:

https://laracasts.com/discuss/channels/servers/correct-method-to-specify-a-port-number

Συνιστούν στο .env

DB_HOST=127.0.0.1
DB_PORT=8889(την πόρτα που θέλεις)

Προσωπικά δεν έχω δοκιμάσει κάτι τέτοιο.

ΥΓ: Μετά από κάθε αλλαγή τρέχεις τις εντολές για αναδημιουργία των ρυθμίσεων

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

Υπάρχει αρκετή τεκμηρίωση αν ψάξουμε στο διαδίκτυο.

ΔΕΝ ΕΙΜΑΙ ΕΙΔΙΚΟΣ !!!

Ας μην αυτοσχεδιάζουμε !!!

Μανόλης Μεταξάκης

Γιώργο και Δημήτρη ευχαριστώ πολύ για την ΑΜΕΣΗ ανταπόκριση!!! :)

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

#38
Προστέθηκε η δυνατότητα καταχώρισης ΑΔΑ αντί του αρχείου

Έτσι όταν ζητήσουμε το αρχείο κατεβάινει από τη "Διαύγεια".


Υπάρχουν 3 δυνατότητες:

1. το αρχείο τοπικά
2. ΑΔΑ
3. και Αρχείο και ΑΔΑ.




ΠΡΟΣΟΧΗ

Όσοι έχουν Ηλ.Πρωτόκολλο σε χρήση πρέπει να αλλάξουν χειροκίνητα τον πίνακα Attachments με το PhpAdmin
ως εξής:

Δημιουργήσετε ένα field με
όνομα  ada    
τύπο    varchar(255)
και τροποποιήστε τα πεδία
ada, name, savedPath, mimeType, keep, expires, created_at, updated_at, deleted_at
ώστε να μπορούν να είναι κενά (NULL).
ΒΛΕΠΕ ΣΥΝΗΜΜΕΝΗ ΕΙΚΟΝΑ

ΠΡΙΝ ΟΠΟΙΑΔΗΠΟΤΕ ΑΛΛΑΓΗ BACKUP ΒΔ ΚΑΙ ΑΡΧΕΙΩΝ ΩΣΤΕ ΝΑ ΥΠΟΧΩΡΗΣΕΤΕ ΑΝ ΚΑΤΙ ΔΕΝ ΠΑΕΙ ΚΑΛΑ

Δεν μπορώ παρά να ευχαριστήσω ακόμη μια φορά
τον Δημήτρη Κανά για την πρότασή του  ;)

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


Επανέρχομαι ... (6/11/18, 21:37)
ΑΦΟΡΑ ΟΣΟΥΣ ΕΧΟΥΝ ΕΝΕΡΓΟ ΠΡΩΤΟΚΟΛΛΟ ΣΕ ΧΡΗΣΗ

Για να γίνει σωστά η αλλαγή στην χρήση ΑΔΑ
θα πρέπει να λάβετε υπόψη και  τις 3 τελευταίες τροποποιήσεις (commits) στο github.

Η μεσαία κάνει μια μικρή διόρθωση.
Για την 3η και τελευταία πρέπει να προσθέσετε στον πίνακα configs
τις τιμες:
key:      diavgeiaUrl
value:  http://static.diavgeia.gov.gr/doc/

BACKUP, BACKUP, BACKUP, ...

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

Γιώργο όλα φαίνονται να δουλεύουν καλά και με τις νέες προσθήκες.

Θα μπορούσε να μπει και η ΑΔΑ στα πεδία της αναζήτησης αν και είναι στον πίνακα με τα συνημμένα. Δε ξέρω αν είναι εύκολο να μπει...
Powered by Elxis : LabSchool.mysch.gr

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

#40
Προστέθηκαν στα πεδία αναζήτησης

1. το όνομα συνημμένου αρχείου
2. ο ΑΔΑ (Αριθμός Διαδικτυακής Ανάρτησης)

Ευχαριστώ πολύ

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

Δοκιμάστηκε και η νέα προσθήκη στην αναζήτηση κι όλα δουλεύουν ρολόι.
Powered by Elxis : LabSchool.mysch.gr

Stavros Dimakis

καλησπέρα στην παρέα
Εγκατέστησα το λογισμικό δοκιμαστικά σε έναν τοπικό server με χρήση xamp. Θα ήθελα  την βοήθεια σας.
Καταρχήν το extension=php_curl.dll δεν υπάρχει στην γραμμή 878 που αναφέρεται και επομένως το πρόσθεσα χειροκίνητα.
Στη συνέχεια ακολούθησα τις λοιπές εντολές. Μου βγάζει την αρχική σελίδα αλλά από εκεί και πέρα όταν πατάω Σύνδεση ή Εγγραφή μου βγάζει The requested URL was not found on this server Error 404. Tί μπορεί να πήγε στραβά? Ελπίζω όχι όλα.
Ευχαριστώ

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

Γεια σου...

Δημιούργησες το...
C:\xampp\apache\conf\alias\protocol.conf

και έβαλες τη ρύθμιση στο...
C:\xampp\apache\conf\httpd.conf

Επίσης όλα ok...
.env
με APP_URL=http://localhost

.htaccess
με RewriteBase /e-protocol
Powered by Elxis : LabSchool.mysch.gr

Stavros Dimakis

Ευχαριστώ
Ναι υπάρχουν όλα αυτά αλλά δυστυχώς τίποτα.

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

Όλα τα αρχεία είναι στο φάκελο:

C:\xampp\htdocs\e-protocol

και η διεύθυνση...

http://localhost/e-protocol/login δε σε πάει στη σύνδεση;
Powered by Elxis : LabSchool.mysch.gr

mitsospap

Το συγκεκριμενο προγραμμα ηλεκτρονικου προτοκολλου ειναι δωρεαν; Να το εγκαταστησω στο σχολειο; Ρωταω γιατι κατι γραφει για demo στην πρωτη σελιδα.

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

Το Demo (επίδειξη) του Ηλεκτρονικού Πρωτοκόλλου επιτρέπει σε κάποιον που ενδιαφέρεται να το δει ζωντανά πως δουλεύει. Τρέχει στον προσωπικό μου υπολογιστή (όταν είναι ανοιχτός).

Φτιάχτηκε από εμένα (Γεώργιος Θεοδώρου) σε συνεργασία με τον Ζώτο Παναγιώτη. Είναι δωρεάν. Αν κάποιος επιθυμεί μπορεί να διαβάσει περισσότερα στο μενού [Περί...].

Αν σας κάνει καλό θα ήταν να το εγκαταστήσετε σε ένα server (lamp ή wamp). Εκεί θα ρυθμίσετε την πρόσβαση και την διατήρηση των πολύτιμων αρχείων σας.

mitsospap

Feature με αντιγραφο ασφαλειας σε usb stick εχετε βαλει;

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

#49
Τι εννοείτε;

Η διατήρηση των δεδομένων έχει διάφορα επίπεδα.


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


1. Backup της Βάσης δςδομένων.

Αυτό γίνεται μέσα από το Μενού [Διαχείριση->Backup]. Δημιουργείται αντίγραφο ασφαλείας της μορφής ".sql.gz" στον φάκελο storage/app/arxeio/backups. Η ίδια δουλειά μπορεί να γίνει και μέσω PhpMyAdmin.

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



2. Backup των συνημμένων αρχείων.

Τα συνημμένα αρχεία αποθηκεύονται στον φάκελο storage/app/arxeio/[Φάκελος Φ.]/ .

Μπορεί με τον καιρό αυτά να αποκτήσουν σοβαρό μέγεθος!

Θα πρέπέι με ένα πρόσφορο τρόπο να δημιουργούνται αντίγραφα ασφαλείας του storage/app/arxeio/.



3. Backup όλου του συστήματος.

Τι θα γίνει αν αστοχήσει ο σκληρός δίσκος; Θα πρέπει να στηθούν όλα από την αρχή!!!

Σ αυτό το επίπεδο ο διαχειριστης σκέφτεται μια συστοιχία δίσκων RAID

mitsospap

#50
Στο βιντεο σας μιλατε για το 1. Σωστα;
Κατα την αποψη μου θα επρεπε να υπαρχουν ρυθμισεις που θα ρυθμιζεται το μεσο αποθηκευσης του αντιγραφου ασφαλειας.
Γιατι ετσι πρεπει να παω εγω μεσα στο φακελο backups και να το παρω.
Με ενα click θα πρεπει να αποθηκευεται κατευθειαν εκει που θελω.

Τα συνημενα δεν ειναι μεσα σε αυτη την διαδικασια;

2) πως γινεται η επαναφορα του αντιγραφου; Γινεται μια ζημια ας πουμε. Υπαρχει καπου η διαδικασια; Γινεται να απλοποιηθει;

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

Παράθεση από: mitsospap στις 16 Ιαν 2019, 07:38:59 ΜΜ
Στο βιντεο σας μιλατε για το 1. Σωστα;
Κατα την αποψη μου θα επρεπε να υπαρχουν ρυθμισεις που θα ρυθμιζεται το μεσο αποθηκευσης του αντιγραφου ασφαλειας.
Γιατι ετσι πρεπει να παω εγω μεσα στο φακελο backups και να το παρω.
Με ενα click θα πρεπει να αποθηκευεται κατευθειαν εκει που θελω.

Τα συνημενα δεν ειναι μεσα σε αυτη την διαδικασια;

2) πως γινεται η επαναφορα του αντιγραφου; Γινεται μια ζημια ας πουμε. Υπαρχει καπου η διαδικασια; Γινεται να απλοποιηθει;

Γεια σας,

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

Εγώ το έχω στήσει (πραγματικά σε λίγα λεπτά μιας και το έμαθα αρκετά καλά) σε 2 υπολογιστές όπου αν κάτι πάει στραβά στον έναν σε λίγα λεπτά να λειτουργήσει η βάση στο δεύτερο του δικτύου. Το backup των αρχείων και της βάσης γίνεται αυτόματα κάθε μέρα σε NAS σε συγκεκριμένη ώρα με βάθος χρόνου 5 ημερών και τα αρχεία είναι άμεσα διαθέσιμα όπου μπορείς να τα αντιγράψεις ακόμα και σε usb.
Powered by Elxis : LabSchool.mysch.gr

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

#52
Το Ηλεκτρονικό Πρωτόκολλο είναι διαδικτυακή εφαρμογή (server side webapp) φτιαγμένη να τρέχει σε ένα server και να προσεγγίζεται από φυλομετρητές.

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

Υπάρχει δυνατότητα μέσω του φυλομετρητή να λαμβάνονται ή να διαμοιράζονται αρχεία. Επίσης μπορούν να προσεγγίσουν μέσω ftp κάποιον άλλο server.

Δεν μπορούμε να τις αντιμετωπίζουμε σαν desktop εφαρμογές που έχουν περισσότερες δυνατότητες προσέγγισης του τοπικού συστήματος αρχείων.

Είναι φτιαγμένες να τρέχουν σε οποιοδήποτε σύστημα win, linux, mac παρέχει server.

Τώρα για να τρέξει το Ηλ.Πρ. στα WINDOWS χρησιμοποιείται μια εφαρμογή server (xampp, wampp).

Το framework laravel παρέχει δυνατότητες πρόσβασης αρχείων (με τους προηγούμενους περιορισμούς) στο Ηλ.Πρ. (δεν ανακαλύπτεις εκ νέου τον τροχό).

Φυσικά θα μπορούσε να φτιαχτεί μια σελίδα όπου θα ανέβαζες το backup και θα αντικαθίστατο η ΒΔ με το στιγμιότυπο του backup. Αυτό όμως θα προυπόθετε μια "υγιή" ΒΔ.

Αν η ΒΔ έχει υποστεί βλάβη τότε υποθέτω δεν θα υπάρχει πρόσβαση και στο Ηλ.Πρ. με ένα ωραίο "database error".

Εκ των πραγμάτων τα πραγματικά σφάλματα θέλουν "χέρι" από ένα "διαχειριστή".
 

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

Κατά τη διαδικασία πρωτοκόλλησης υπήρχαν συνάδελφοι που έγραφαν/σημείωναν τον αριθμό πρωτοκόλλου πριν κάνουν αποθήκευση με αποτέλεσμα, αν κάποιος άλλος πρώτος το έπαιρνε, να το σημείωναν λανθασμένα. Η εναλλαγή του χρώματος του πλαισίου στην αποθήκευση δε βοηθούσε αρκετά. Σκέφτηκα να το γράψω σε μήνυμα για το πότε καταχωρείται ο αριθμός πρωτοκόλλου και μαζί με αυτό και ποιος από τους συγγραφείς το πήρε πρώτος ή έκανε τελευταίος αλλαγές μαζί με ημερομηνία και ώρα. Σχετικές εικόνες βρίσκονται επισυναπτόμενες στο μήνυμα...

Μια ιδέα που μπορεί να ενσωματωθεί στην επόμενη αναβάθμιση...  ;) τι λέτε;
Powered by Elxis : LabSchool.mysch.gr

bugman

Μήπως να υπάρχει μια διπλή αρίθμηση. Πχ αρίθμηση issue#10 (ή αντί για το issue βάλε το αίτημα) για το άνοιγμα εγγραφής και μετά να υπάρχει μια εμφάνιση από μια λίστα "αιτημάτων εγγραφής πρωτοκόλλου" σε μια γραμμή: αίτημα#10->α/π 1001
Τα αιτήματα μπορεί να παραμένουν όση ώρα θέλουν ανοικτά ή και να διαγράφονται, αλλά δεν θα πιάνουν αριθμούς πρωτοκόλλου, ούτε θα δείχνουν πχ τον τελευταίο αριθμό αυτού. Προφανώς κάποιο mutex θα χρειαστεί για να προχωράει στον επόμενο ο αριθμός πρωτοκόλλου, όπως και ο αριθμός αιτημάτων. Τα αιτήματα μπορούν να έχουν αριθμό ημέρας δημιουργίας. Έτσι το αίτημα#10.25.2.19 θα είναι το 10ο της ημέρας. Ο χρήστης δεν χρειάζεται να βλέπει όλο το νούμερο. Αρκεί να παίρνει στη λίστα τα "τοπικά αιτήματα" που έχουν αποσταλεί και έχουν πάρει αρ. πρ.



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

bugman θα πάρει πολύπλοκη μορφή. Αυτό όμως που σκέφτηκες, το να μην εμφανίζεται ο αριθμός πρωτοκόλλου (πριν την αποθήκευση) το σκέφτηκα κι εγώ και γίνεται πολύ εύκολα.
Powered by Elxis : LabSchool.mysch.gr

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

Μια ερώτηση που έμμεσα αφορά την εφαρμογή: Ορισμένες χαρακτήρες Unicode symbol που χρησιμοποίησα στην εφαρμογή (εικονίτσες όπως φαίνεται και στις επισυναπτόμενες εικόνες) δεν εμφανίζονται κανονικά στο Google Chrome των Windows 7.

Βλέπετε κανονικά το εικονίδιο: 🦄 ή τετραγωνάκι;

Υπάρχει κάποια έκδοση από γραμματοσειρά που πρέπει να εγκαταστήσω στα windows 7 για να εμφανίζονται όλα αυτά τα εικονίδια;
Powered by Elxis : LabSchool.mysch.gr

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

#57
Καλησπέρα κι από εμένα...

Δημήτρη χαίρομαι για την επίμονη συνεισφορά σου στο project.

Με ένα μικρό γκουγκλάρισμα είδα οτι υπάρχουν οδηγοί για το πως μπορεί να γίνει η παρακολούθηση των χρηστών.

https://github.com/thomastkim/laravel-online-users
https://stackoverflow.com/questions/32666052/get-all-connected-users-laravel-5
https://github.com/joshrainwater/active-users

Ίσως με λίγο περισσότερο ψάξιμο βρεθούν και πιο πρόσφατες λύσεις.

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


Θα το δούμε εν καιρώ...

Μέχρι τότε πρώτα καταχωρώ το Πρωτόκολλο και μετά το σημειώνω



Επίσης θα ήθελα να θέσω κάτι ακόμα:

Το laravel εξελίσσεται και προοδεύει (παρούσα έκδοση 5.8 )
Το Ηλ.Πρωτόκολλο φτιάχτηκε με την έκδοση 5.3
Το ίδιο και η PHP έχει πάει στην έκδοση 7.2

Αυτά δεν θα τα καταλάβει ένας χρήστης των windows
όμως σε ένα linux server θα πρέπει να γίνουν προσαρμογές...
Πιθανόν να πάμε σε εκδόσεις δηλ

Ηλ. Πρωτόκολλο με laravel 5.3 - php 5.6
Ηλ. Πρωτόκολλο με laravel 5.3 - php 7
Ηλ. Πρωτόκολλο με laravel 5.7 - php 7.2
...

Ήδη στον προσωπικό μου server έχω προβεί σε αλλαγές γιατί με την ενημέρωση της php δεν δούλευαν κάποια παραγματάκια. Δεν έχω ανεβάσει ακόμη τίποτα στο github.

Όσο περισσότερα Ηλ.Πρωτόκολλα "δουλεύουν" στην παραγωγή τόσο μεγαλύτερη η ευθύνη των αλλαγών.

Επίσης κοιτάζω αν και πως μπορεί να τρέξει σαν τοπική εφαρμογή με το phpdesktop και sqlite


Τα σέβη μου στην ομάδα.
Διαθέσιμος μετά το Σεπ 2019.

bugman

Υπάρχει mutex class στην php
http://php.net/manual/en/class.mutex.php

Δουλεύει με το να προσπαθεί κάποιος να το κλειδώσει. Αυτός που θα τα καταφέρει, θα κάνει τους άλλους να περιμένουν.

http://php.net/manual/en/mutex.lock.php

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

Δουλεύοντας με ένα framework όπως το laravel προσπαθείς να "προγραμματίζεις" με τον τρόπο του framework και αφήνεις αυτό να συνδιαλέγεται με την php.

Φυσικά και δεν απαγορεύεται να γράψεις καθαρό php κώδικα. Ούτως ή άλλως όλο το πράγμα είναι php.

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

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

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

Σημείωση: Κάποια βοήθεια με το ερώτημά μου για χαρακτήρες Unicode symbol στα windows 7;
Powered by Elxis : LabSchool.mysch.gr

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

#61
Από την αρχή της σχεδίασης του project τέθηκε από τον κ. Ζώτο η επιθυμία να μπορείς να καταχωρείς "κενό" Πρωτόκολλο και να το συμπληρώνεις μετά.
Παρότι αυτό στην αρχή δεν το θεωρούσα "πρέπον", είναι βολικό να μπορείς να κάνεις κάτι τέτοιο... όταν υπάρχει φόρτος εργασίας.  >:D

Μπορούμε αν θέλουμε να τροποποιήσουμε τον validator της φόρμας εισαγωγής ώστε να μην επιτρέπεται κάτι τέτοιο. Το ερώτημα που εγείρεται είναι: Το θέλουμε;

Ουδέν καλόν αμιγές κακού (το παρέφρασα λίγο)  :angel:

Οι περισσότεροι έλεγχοι από τον κώδικα κάνουν ένα εργαλείο πιο "άκαμπτο". Το "ευέλικτο" εργαλείο θέλει πιο επισταμένη χρήση και έλεγχο. Κάπου πρέπει να βρούμε τη χρυσή τομή των δύο!

Δεν γίνεται να προβλέψουμε κάθε τί !!!

Ο έλεγχος των πρωτοκόλλων της ημέρας μπορεί να γίνει από τη λίστα Πρωτοκόλλου

Υπάρχουν και άλλα "μυστικά":
πχ. όταν στις ρυθμίσεις στα Δικαιώματα Χρηστών η ρύθμιση "Έλεγχοι & περιορισμοί κατά την καταχώριση" τεθεί σε ΟΧΙ
ο Διαχειριστής μπορεί να Τροποποιήσει και τον Αριθμό Πρωτοκόλλου ή ακόμη και να Διαγράψει ένα Πρωτόκολλο!!!

Κάποιες επιλογές θέλουν ΠΡΟΣΟΧΗ και backup, backup, backup, ...

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

#62
Χάρη στη εξαιρετική δουλειά του cztomczak με το phpdesktop μπορεί στα windows να τρέξει η php σαν desktop εφαρμογή χρησιμοποιώντας τον chrome.

https://github.com/cztomczak/phpdesktop

Το Ηλεκτρονικό Πρωτόκολλο προσαρμόστηκε και ρυθμίστηκε. Χρησιμοποιείται σαν ΒΔ η sqlite.

Κατεβάστε το συμπιεσμένο αρχείο 7z από τον παρακάτω σύνδεσμο:

https://github.com/g-theodoroy/electronic_protocol/releases/download/win.0.0/electronic_protocol-win.zip

Τρέξτε το αρχείο electronic_protocol.exe

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

Το δοκίμασα και δουλεύει άψογα! :-)
Powered by Elxis : LabSchool.mysch.gr

kokkonos

Καταρχήν το ηλεκτρονικό πρωτόκολλο φαίνεται εξαιρετικά λειτουργικό ως εφαρμογή.
Θα ήθελα όμως να ρωτήσω το εξής:
γιατί όταν καταχωρίζεται μια εγγραφή στο πρωτόκολλο δεν κλειδώνει, ώστε να μη μπορούν οι συγγραφείς να την αλλάξουν (αυτή τη λειτουργικότητα θα μπορούσε να την έχει ο διαχειριστής);
Μας ενδιαφέρει να μη μπορεί να αλλάζει (έτσι απλά) το περιεχόμενο του βιβλίου πρωτοκόλλου.

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

Προγραμματιστικά είναι θέμα κάποιων γραμμών κώδικα!!!

Όπως δεν αφήνεις ένα χρήστη "Αναγνώστη" να εισάγει ή να τροποποιήσει ένα Πρωτόκολλο έτσι μπορείς να κάνεις και ένα χρήστη "Συγγραφέα" να μη μπορεί να τροποποιήσει ένα Πρωτόκολλο.


Εισάγει λοιπόν ο Συγγραφέας ένα Νέο Πρωτόκολλο και ανακαλύπτει ότι έκανε ένα μικρό λάθος!  Πως θα το διορθώσει;

Θα μπορούσαμε να επιτρέπουμε την τροποποίηση Πρωτοκόλλου στον Συγγραφέα (και μόνο σε αυτόν) για περιορισμένο χρόνο μετά την καταχώριση του Νέου Πρωτοκόλλου (πχ: 5 ή 10 λεπτά).


Το κενό Πρωτόκολλο που θέλουμε σε περίπτωση φόρτου εργασίας ;;;

Θα μπορούσαμε να ελέγξουμε αν το Θέμα ή όλα τα πεδία είναι κενά και τότε να επιτρέπουμε την τροποποίηση!


Όλα είναι θέμα προδιαγραφων... Τί θέλουμε να μπορεί να γίνεται και από ποιόν!!!


Όπως έγραψα σε προηγούμενη απάντηση:

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


Θα μπορούσαν να προστεθούν κάποιες ρυθμιστικές μεταβλητές:

πχ "επιτρέπεται_στον_συγγραφέα_να_ενημερώνει_πρωτόκολλο" = true ή false

και ανάλογα με τη ρύθμιση από τον Διαχειριστή να συμβαίνει ή όχι...


Μήπως όμως όλα γίνονται πιο περίπλοκα στις ρυθμισεις;;;


Δεν γνωρίζω τα πάντα ούτε έχω άποψη για τα πάντα!!!

Προέβην στο εγχείρημα γιατί τα Ηλ.Πρωτόκολλα που έβρισκα ήταν επί πληρωμή!!!

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

Ο κώδικας είναι ανοιχτός και μπορεί όποιος θέλει και έχει μεράκι να τον τροποιήσει και να τον προχωρήσει.

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

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

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

Και όλοι οι συγγραφείς να μπορούν να ενημερώνουν δε νομίζω να υπάρχει πρόβλημα αρκεί να γνωρίζουμε ποιος ενημέρωσε τελευταίος τις εγγραφές κάτι που με το ID του χρήστη φαίνεται.
Powered by Elxis : LabSchool.mysch.gr

bugman

Πού είναι ο κώδικας; Κατέβασα το PHP Desktop v72.1 for Linux (γιατί το βασικό μου λειτουργικό είναι το ubuntu studio, οπότε με βολεύει εκεί καλύτερα, δεν ξέρω αν κάποιος άλλος το τρέχει σε linux).

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

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

Απ την άλλη στο phpdesktop for windows έτρεξε με μόλις μια μικρή αλλαγή.


Το Ηλεκτρονικό πρωτόκολλο είναι προσβάσιμο στο:

https://github.com/g-theodoroy/electronic_protocol


Προσωπικά το τρέχω σε Arch linux. http://okiroi.no-ip.org/protocol


Στα linux δεν χρειάζεσαι το phpdesktop (αυτό είναι προσωπική μου γνώμη).

Μπορείς να στήσεις ένα server με apache, php και mariadb ή sqlite και να το τρέξεις από κει.

Εναλακτικά μπορείς να κατεβάσεις xampp για linux.


ΠΡΟΣΟΧΗ

Στις οδηγίες που θα δεις στο github θα διαβάσεις για κάποια script εγκατάστασης. Το script για ubuntu ενημερώθηκε από εμένα τελευταία φορά τον Μάιο του 2018. Δες την σχετική απάντηση από τον igaid:

Απ: Ηλεκτρονικό Πρωτόκολλο Σχολείου
« Απάντηση #15 στις: 23 Μάι 2018, 11:56:04 πμ »

Τα script θέλουν επικαιροποίηση καθώς κάθε διανομή έχει τον κύκλο της (πχ ubuntu κάθε 6 μήνες).

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

Αν πάλι θέλεις σαν ΒΔ την sqlite θα πρέπει να παντρέψεις τις ρυθμίσεις και τον κώδικα του phpdesktop Ηλ.Πρωτοκόλλου από το 7z με το github.

Το τρέχον Ηλ. Πρωτόκολλο χρησιμοποιεί το laravel 5.8 και php 7.

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

Σχετικά με το κλείδωμα της εγγραφής θα μπορούσε να υπάρχει μια επιλογή για κάθε μία εγγραφή ώστε να δίνεται η δυνατότητα να κλειδώνεις την εγγραφή στον χρήστη (να το τροποποιεί και να το ενημερώνει μόνο ο ίδιος) ή και στους υπόλοιπους.
Powered by Elxis : LabSchool.mysch.gr

bugman

κ. Θεοδώρου,
Για πoιο λόγο επιλέχθηκε η php για το πρωτόκολλο;
Λογικά δεν πρέπει να είναι σε μία και μόνο θέση εργασίας; Μια desktop εφαρμογή δεν θα ήταν καλύτερη;
Με αυτό το σκεπτικό θα είναι ένας ο χρήστης, οπότε δεν θα υπάρχει θέμα ανοικτής ή διπλής εγγραφής.
Επίσης στο θέμα της εκτύπωσης, βλέπω ότι απαιτείται εκτυπωτής Α3. Υποτίθεται ότι το έντυπο είναι ένα τύπος για αντίγραφο ασφαλείας. Με το σκεπτικό αυτό ακόμα και Α4 θα μπορούσε να χρησιμοποιηθεί, επειδή μπαίνει εύκολα σε φακέλους, με την διαφοροποίηση ότι αντί να εμφανίζει τις στήλες τη μια δίπλα στην άλλη, να εμφανίζει τις εγγραφές την μία μετά την άλλη. Αυτό σημαίνει ότι κάθε εγγραφή θα είναι μια ομαδοποίηση δυο ή περισσότερων γραμμών.

Δοκίμασα με το phpdesktop, σε ubuntu 18.04.2 LTS, δουλεύει ως έχει, αλλά όταν του βάλω στο www το πρωτόκολλο, και αφήσω το index.php του phpdesktop, για να μπορώ να καλέσω από το public το index.php, βγάζει πρόβλημα, με τα modules του boostrap που λείπουν, και θα έπρεπε να είναι στο  φάκελο vendor (το οποίο δεν υπάρχει στο zip που κατέβασα), όπου υποτίθεται θα υπήρχε το autoload.php. Βρήκα ένα τρόπο να φτιάξω τον φάκελο, αλλά ξαναφτιάχνει τα composer json και lock, με συνέπεια να μην προχωράει το πρόγραμμα (server error 500).

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

#71
phpdesktop for linux

Παράθεση από: Γεώργιος Θεοδώρου στις 27 Μαρ 2019, 07:19:14 ΠΜ
Το phpdesktop for linux είναι σε αρχικό στάδιο. Προσπάθησα να στήσω το Ηλ.Πρωτόκολλο πρώτα εκεί αλλά συνάντησα δυσκολίες... Αν κάποια στιγμή κάποιος (συμπεριλαμβανομένου και εμού) καταφέρει να το στήσει ας μας το κοινοποιήσει.

Απ την άλλη στο phpdesktop for windows έτρεξε με μόλις μια μικρή αλλαγή.


Το Ηλεκτρονικό πρωτόκολλο είναι προσβάσιμο στο:

https://github.com/g-theodoroy/electronic_protocol


Προσωπικά το τρέχω σε Arch linux. http://okiroi.no-ip.org/protocol


Στα linux δεν χρειάζεσαι το phpdesktop (αυτό είναι προσωπική μου γνώμη).

Μπορείς να στήσεις ένα server με apache, php και mariadb ή sqlite και να το τρέξεις από κει.

Εναλακτικά μπορείς να κατεβάσεις xampp για linux.


ΠΡΟΣΟΧΗ

Στις οδηγίες που θα δεις στο github θα διαβάσεις για κάποια script εγκατάστασης. Το script για ubuntu ενημερώθηκε από εμένα τελευταία φορά τον Μάιο του 2018. Δες την σχετική απάντηση από τον igaid:

Απ: Ηλεκτρονικό Πρωτόκολλο Σχολείου
« Απάντηση #15 στις: 23 Μάι 2018, 11:56:04 πμ »

Τα script θέλουν επικαιροποίηση καθώς κάθε διανομή έχει τον κύκλο της (πχ ubuntu κάθε 6 μήνες).

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

Αν πάλι θέλεις σαν ΒΔ την sqlite θα πρέπει να παντρέψεις τις ρυθμίσεις και τον κώδικα του phpdesktop Ηλ.Πρωτοκόλλου από το 7z με το github.

Το τρέχον Ηλ. Πρωτόκολλο χρησιμοποιεί το laravel 5.8 και php 7.



Εκτυπώσεις

Στις οδηγίες χρήσης γράφει: Συνίσταται εκτύπωση σε Α3.

Οι προτιμήσεις εκτύπωσης δεν καθορίζονται από το Ηλ.Πρωτόκολλο. Αν δώσεις για "εκτύπωση" πολλά Πρωτόκολλα θα πάρεις μια μεγάλη... ιστοσελίδα.
Οι προτιμήσεις εκτύπωσης ορίζονται στον Φυλλομετρητή. Μπορείς αν θέλεις να τυπώσεις σε Α4.


webbased vs desktop app

Δεν έχω σχόλια...


php

Ίσως αν ξεκίναγα τώρα το project να επέλεγα javascript και electron

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

Επανέρχομαι αγαπητέ bugman



Για να δημιουργηθεί ο φάκελος vendor πρέπει να τρέξουμε την εντολή composer install από terminal καθώς και κάποιες άλλες όπως περιγράφεται εδώ:

https://github.com/g-theodoroy/electronic_protocol#%CF%81%CF%8D%CE%B8%CE%BC%CE%B9%CF%83%CE%B7-php



Ο composer είναι ένας διαχειριστής εξαρτήσεων της php για να μειώνεται ο όγκος των αρχείων σε κάθε project. Με αυτόν τραβάμε τις εξαρτήσεις και δημιουργείται ο φάκελος vendor με τα απαραίτητα προγράμματα. Για περισσότερα:

https://getcomposer.org/




Για τη ρύθμιση του laravel στο phpdesktop έχει οδηγίες εδώ:

https://github.com/cztomczak/phpdesktop/wiki/PHP-frameworks-support#laravel



Για εγκατάσταση του  laravel εδώ: https://laravel.com/docs/5.8/installation



Δυστυχώς κι εγώ έπεσα σε "server error 500". Γι αυτό και εγκατέλειψα.

Το phpdesktop για linux είναι πολύ άγουρο ακόμη...


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

#73
Τροποποιήθηκαν

ρυθμίσεις πρόσβασης των Χρηστών


Ο "Αναγνώστης" παραμένει ώς έχει (μπορεί μόνο να δεί, δεν εισάγει, δεν τροποποιεί)


Ο "Συγγραφέας" ανάλογα με τις Ρυθμίσεις στο πεδίο "Δυνατότητα Επεξεργασίας Πρωτοκόλλου από Συγγραφέα"

  • ΟΧΙ => Δεν μπορεί κανείς να τροποποιήσει Πρωτόκολλο
  • ΕΝΑΣ => Μόνο ο χρήστης που καταχώρισε το Πρωτόκολλο μπορεί να το τροποποιήσει
  • ΟΛΟΙ => Όλοι οι συγγραφείς μπορούν να τροποποιήσουν

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

Χρονόμετρο μετρά αντίστροφα τον χρόνο για τον οποίο μένει ανοιχτό το Πρωτόκολλο για επεξεργασία

ΕΞΑΙΡΕΣΗ αποτελεί Πρωτόκολλο δίχως Θέμα (κενό Πρωτόκολλο)


Ο "Διαχειριστής" δεν υπόκειται στους παραπάνω περιορισμούς



Εμφάνιση Πληροφοριών Χρηστών

Υπάρχει δυνατότητα να εμφανίζεται  ή όχι το username ή το όνομα

  • των ενεργών χρηστών εφόσον είναι πάνω από 2
  • του χρήστη που καταχώρισε ή ενημέρωσε ένα Πρωτόκολλο και πότε

Ευχαριστώ για τις υποδείξεις

ΠΑΡΑΚΑΛΩ ΔΟΚΙΜΑΣΤΕ ΚΑΙ ΕΠΙΒΕΒΑΙΩΣΤΕ ΟΤΙ ΟΛΑ ΔΟΥΛΕΥΟΥΝ ΠΡΙΝ ΤΑ ΒΑΛΕΤΕ ΣΕ ΠΑΡΑΓΩΓΗ
ΑΝΘΡΩΠΟΙ ΕΙΜΑΣΤΕ...

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

#74
Είμαι σε φάση δοκιμασίας... Οι πληροφορίες (χρήστη και ημερομηνία πρωτοκόλλησης - ενημέρωσης) εμφανίζονται κανονικά με την πρωτοκόλληση του εγγράφου αλλά δε βλέπω να γίνονται εγγραφές στο sessions της βάσης με αποτέλεσμα να μη λειτουργούν (μάλλον) οι περιορισμοί για 2 συγγραφείς να θέλουν να πάρουν ταυτόχρονα ένα πρωτόκολλο ή να εμφανίζονται και τα 2 ονόματά (ενεργοί χρήστες) στη διαδικασία αποθήκευσης του πρωτοκόλλου ή να μην εμφανίζεται το πρωτόκολλο μέχρι την αποθήκευση. Πάντως λειτουργεί χωρίς σφάλματα... άψογα. Μόνο μένει ένα απλό σύστημα αναθέσεων για να θεωρηθεί ολοκληρωμένη πλατφόρμα πρωτοκόλλησης και ανάθεσης αντικειμένων σε έναν εκπαιδευτικό οργανισμό. Η δοκιμή γίνεται με εκνέου εγκατάσταση σε xampp και Windows.

Συγκεκριμένα αυτοί οι περιορισμοί:

https://github.com/g-theodoroy/electronic_protocol/commit/01505fb588f1fe867a38c3bc1bfde9a83f475f04
Powered by Elxis : LabSchool.mysch.gr

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

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

Το τελευταίο στάδιο Γιώργο νομίζω πως θα είναι οι αναθέσεις που σου έλεγα (νομίζω πως αυτό δεν είναι τίποτα μπροστά στα σύνθετα που ήδη έχεις κάνει). Εκείνος ο χρήστης που θα ορίζεται ως διεκπεραιωτής ενός εγγράφου (υπάρχει πεδίο τέτοιο στο πρωτόκολλο -γιατί να είναι ελεύθερο κείμενο αφού οι διεκπεραιωτές είναι στην ουσία χρήστες- μαζί με ημερομηνία διεκπεραίωσης) να του εμφανίζεται η εγγραφή σε ξεχωριστή προσωπική λίστα (να ξέρει γενικά τι πρέπει να διεκπεραιώσει από το σύνολο των εγγραφών και αν το διεκπεραίωσε πότε). Αυτό είναι χρήσιμο ακόμα και στο Διευθυντή για να απομονώνει πρωτόκολλα που απαιτούν άμεσες ενέργειες. Στην ουσία... μια λίστα (με προς διεκπεραίωση έγγραφα και διεκπεραιωμένα ανά χρήστη) που φυσικά αν έχεις χρόνο και διάθεση μπορείς να το κάνεις και επίσημα. Εγώ με αυτό θεωρώ πως δε χρειάζεται κάτι άλλο η εφαρμογή σου ως λειτουργία...

Υ: Κάτι που συνάντησα κατά την εγκατάσταση: Ένα σφάλμα με την εντολή php artisan optimize
Powered by Elxis : LabSchool.mysch.gr

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

Το σφάλμα στο php artisan optimize οφείλεται σε αυτόματο κώδικα route που γράφει το laravel όταν χρησιμοποείς την εντολή php artisan make:auth για να φτιάξει
αυτόματα τις route του auth. Με την php 7 χτυπάει...

Με ένα γρήγορο γκουγκλάρισμα είδα ότι παραπονιούνται διάφοροι για το bug

https://github.com/laravel/framework/issues/22034

Δεν επηρεάζεται η εφαρμογή.


ΕΡΩΤΗΣΗ

Θα μπορούσες Δημήτρη μιας και έχεις ευχέρεια και προπάντων εμπειρία στο στήσιμο σε Xampp σε Windows να μας φτιάξεις ένα οδηγό - μνημόνιο (ίσως και με κάποιες φωτογραφίες) για τα στάδια του σεταρίσματος;

Πιστεύω ότι θα βοηθήσει τους συναδέλφους.


Ευχαριστώ πολύ για την προσφορά σου στο project


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

Το έχω ήδη προγραμματίσει... θα ετοιμάσω τον οδηγό εντός των ημερών! Θα μιλήσουμε και τηλεφωνικά...
Powered by Elxis : LabSchool.mysch.gr

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

Είμαι στην ευχάριστη θέση να σας ανακοινώσω ότι το Ηλ. Πρωτόκολλο συμπληρώθηκε με ένα απλό σύστημα αναθέσεων.

Προστέθηκε ο ρόλος "Αναθέτων" (Συγγραφέας που μπορεί να Αναθέτει σε άλλους την Διεκπεραίωση των Πρωτοκόλλων).

Κάθε χρήστης μπορεί να περιηγηθεί σε λίστα Πρωτοκόλλου με

  • προς Διεκπεραίωση Πρωτόκολλα
  • Διεκπεραιώμένα
Οι "Αναθέτες" και "Διαχειριστές" μπορούν να δούν τα "προς Διεκπεραίωση" και "Διεκπεραιωμένα" για όποιο χρήστη επιλέξουν.

Προστέθηκε πεδίο όπου ο χρήστης χαρακτηρίζεται "ενεργός" ή όχι. (πχ κάποιος πρώην χρήστης έφυγε με μετάθεση)

Χρησιμοποιείται σαν Βάση Δεδομένων η sqlite. Η βάση δεδομένων protocol.sqlite βρίσκεται στον φάκελο arxeio έτοιμη προς χρήση. Φυσικά αν κάποιος επιθυμεί να χρησιμοποιήσει την mysql μπορεί να το κάνει τροποποιώντας τις ρυθμίσεις.

To Ηλ. Πρωτόκολλο ολοκλήρωσε την μετάβαση στην έκδοαη laravel 5.8.

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


ΠΡΟΣΟΧΗ Είναι μια αλλαγή μεγάλης έκτασης

Όσοι έχουν ενεργά Πρωτόκολλα πρέπει να στήσουν Νέα και μετά να μεταφέρουν τα δεδομένα (χμ... αυτό χρειάζεται κάποιες γνώσεις SQL!!!)

Ευχαριστώ και πάλι τον Δημήτρη Κανά για την καθοδήγηση.

Καλές δοκιμές και backup, backup, backup.

ΥΓ: Η μεγάλη αλλαγή του κώδικα στο github οδήγησε σε αρκετές τροποποιήσεις ώστε να διορθωθούν μικρολαθάκια. Μένει μόνο να βεβαιωθούμε ότι δεν υπάρχει κάποιο bug!!!

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

#79
Οδηγός εγκατάστασης του Ηλ. Πρωτοκόλλου σε Ubuntu 18.04:

Οδηγίες εγκατάστασης

Σχετικό βίντεο: https://youtu.be/7x3zE0tEaLI


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


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

#81
linux, phpdesktop, Ηλ. Πρωτόκολλο


Τελικά ακολουθώντας τις οδηγίες του cztomczak:

https://github.com/cztomczak/phpdesktop/wiki/Build-on-Linux#build-php-from-sources

έχτισα από τις πηγές (build) την php με τις απαραίτητες βιβλιοθήκες.


Οδηγίες εγκατάστασης



ΠΡΟΣΟΧΗ:

Φροντίστε ο φάκελος storage να είναι προσβάσιμος και εγγράψιμος από όλους.


Κάντε το php-cgi εκτελέσιμο πηγαίνοντας στον φάκελο του Ηλ.Πρωτοκόλλου και δίνοντας την εντολή

chmod +x php-cgi

Παρατήρησα ότι το build στο Archlinux δεν δουλεύει σε Debian - Ubuntu. Στην αρχειοθήκη υπάρχει php-cgi για Debian - Ubuntu. Αν στη διανομή σας δεν δουλεύει αφού κάνετε τα παραπάνω τότε θα πρέπει να "χτίσετε" την php-cgi για τη διανομή σας.

tsipiripo

Κατ'αρχάς συγχαρητήρια για την πολύ καλή δουλιά.

Μία ερώτηση: για να αλλαχτούν/τροποποιηθούν οι φάκελοι Φ στους οποίους γίνεται η πρωτοκόλληση, πρέπει να αλλαχτούν από τη βάση δεδομένων (σε ubutnu 18.04, έχω εγκαταστήσει το sqlitebrowser, η βάση που είναι;;) ή μπορεί να γίνει και από τις ρυθμίσεις της εφαρμογής (δεν το βρήκα κάπου);

Ευχαριστώ

Edit: Οκ, βρήκα τη βάση. Ο πίνακας keepvalues είναι αυτός που ψάχνω;

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

Σωστά. keepvalues.

Ο Διαχειριστής μπορεί να τροποποιήσει αυτόν τον πίνακα από το Μενού

[Πρωτόκολλο] => [Διατήρηση]

στη σελίδα Διατήρηση αρχείων

tsipiripo

Μερικές ιδέες:
1. Στην αναζήτηση πρωτοκόλλου, για τα εισερχόμενα να μπορείς να κάνεις αναζήτηση και με τον αριθμό πρωτοκόλλου του εισερχομένου εγγράφου (τον δικό του, αυτόν δηλαδή που έδωσε η εκδούσα αρχή). Χρήσιμο αν θέλεις πχ να επιβεβαιώσεις αν πχ το τάδε έγγραφο του Υπουργείου έχει πρωτοκολληθεί στο σχολείο/το έχουμε λάβει.
2. Σχετικά με τα ονόματα των συνημμένων εγγράφων: θα μπορούσε κατά την αποθήκευση του εγγράφου Αίτηση.pdf που πρωτοκολλήθηκε στις 8/5/2019 με αριθμό 152 στον φάκελο Φ1, το όνομά του να αλλάζει σε F1_152_08052019.pdf (διατηρείς δηλαδή την κατάληξη  και για όνομα του δίνεις το Φ (με τον Αγγλικό χαρακτήρα F ώστε να μην έχεις και πρόβλημα στα Windows) ακολουθούμενο από τον αριθμό πρωτοκόλλου που παίρνει και την ημερομηνία. Με αυτό τον τρόπο: α) λύνεις το πρόβλημα της εμφάνισης των ονομάτων αρχείων στα windows β)αν υποθέσουμε ότι έχεις πάρει backup των αρχείων σε κάποιο άλλο αποθηκευτικό μέσο -για οικονομία χώρου, καθώς ο συνολικός χώρος που καταλαμβάνουν τα αρχεία μπορεί να γίνει πολύ μεγάλος - θα μπορείς πολύ εύκολα να εντοπίσεις το αρχείο που θέλεις ακόμη και χωρίς να έχεις πρόσβαση στη βάση/εφαρμογή

Γιάννης Γαϊδαρτζής

Παιδιά συγχαρητήρια πολύ καλή δουλειά.  Το έχω εγκαταστήσει στη ΔΔΕ Ρεθύμνου και λειτουργεί τέλεια. Αναρωτιέμαι αν υπάρχει δυνατότητα να συνδεθεί με το email; Για τη διεύθυνση θα ήταν πολύ χρήσιμο.  Υπάρχει μια αντίστοιχη εφαρμογή του Χρήστου Μλέτσα που είναι ελεύθερη αλλά έχει τα θεματάκια της.   
Πρώην ΚΕΠΛΗΝΕΤ

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

Προστέθηκε η δυνατότητα σύνδεσης με ένα λογαριασμό email (πχ: electronicProtocol@gmail.com)

Κάθε φορά που ανανεώνεται η Λίστα Πρωτοκόλλου ή καταχωρίζουμε ή ενημερώνουμε ένα Πρωτόκολλο γίνεται έλεγχος για εισερχόμενα emails. Αν υπάρχουν ενημερωνόμαστε.

Από το μενού [Πρωτόκολλο]->[Εισερχόμενα email]

  • Eλέγχουμε τα email.
  • Επιθεωρούμε τα εισερχόμενα και κρίνουμε αν θα τα αποθηκεύσουμε ή όχι.
  • Σημαίνουμε ένα email ως διαβασμένο. Δεν Πρωτοκολλείται. Μεταφέρεται στον φάκελο INBOX.beenRead.
  • Καταχωρίζουμε το email στο Πρωτόκολλο χωρίς να στείλουμε Απόδειξη παραλαβής. Μεταφέρεται στον φάκελο INBOX.inProtocol.
  • Καταχωρίζουμε το email στο Πρωτόκολλο και στέλνουμε μέσω email Απόδειξη παραλαβής. Μεταφέρεται στον φάκελο INBOX.inProtocol.

Τα καταχωρισμένα email αποθηκεύονται ως αρχεία html στον φάκελο storage/emails.
Μπορούμε να τα ανασύρουμε και να εκτυπώσουμε, ...
Αν έχουν συνημμένα αρχεία πρέπει να επιλεγεί ένας φάκελος Φ.

Μπορούμε να ρυθμίσουμε περισσότερους λογαριασμούς email στο αρχείο config/imap.php.
Υπάρχουν ήδη προρυθμισμένοι ένας λογαριασμός gmail και ένας sch, πρέπει μόνο να συμπληρωθούν username->password.
Ο Διαχειριστής επιλέγει τον ενεργό λογαριασμό.

:)

Γιάννης Γαϊδαρτζής

Πρώην ΚΕΠΛΗΝΕΤ

Γιάννης Γαϊδαρτζής

Μια ερώτηση: επειδή έχω καιρό να κάνω τις ενημερώσεις υπάρχει κάποια σειρά ή μπορώ να τις κάνω όλες μαζί; Υπάρχει κάπου η διαδικασία που πρέπει να ακολουθήσω;   
Πρώην ΚΕΠΛΗΝΕΤ

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

Παράθεση από: igaid στις 24 Μαΐου 2019, 09:50:19 ΠΜ
Μια ερώτηση: επειδή έχω καιρό να κάνω τις ενημερώσεις υπάρχει κάποια σειρά ή μπορώ να τις κάνω όλες μαζί; Υπάρχει κάπου η διαδικασία που πρέπει να ακολουθήσω;

Προτείνω καθαρό install από την αρχή. Αν έχεις δεδομένα πρέπει να τα εισάγεις μετά.

Γιάννης Γαϊδαρτζής

Πρώην ΚΕΠΛΗΝΕΤ

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


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

Πολύ καλό και με ταχύτητα... :)

Ερώτηση στην αναζήτηση: με % εμφανίζονται όλα τα πρωτόκολλα... υπάρχει κάποιος ειδικός χαρακτήρας που να μας δίνει τις κενές εγγραφές σε ένα πεδίο αναζήτησης π.χ. παρατηρήσεις;
Powered by Elxis : LabSchool.mysch.gr

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

Αλλαγές στην Αναζήτηση Πρωτοκόλλου

Προστέθηκε ένα checkbox δίπλα στο textbox που πληκτρολογούμε για αναζήτηση.

Όταν το επιλέγουμε μας δίνει τις εγγραφές που στο επιλεγμένο πεδίο έχουν Null.


Μη σας παραξενέψει η αναζήτηση με τα πεδία "Όνομα συννημένου" και "ΑΔΑ",

γιατί δίνει τις εγγραφές με null τιμές μόνο από τα πρωτόκολλα που έχουν συνημμένα ...

Ευχαριστώ πολύ Δημήτρη ...

Θοδωρής Καρτσιώτης

Καλησπέρα,

Θα πρότεινα ακόμη μία αλλαγή....

Να εμφανίζονται οι υπάρχουσες λέξεις-κλειδιά (keywords) κατά την πληκτρολόγηση όπως γίνεται με το αντίστοιχο dropdown list των Φακέλων Αρχείου (Φ1, Φ2 κλπ.)

ΥΠΛΗΝΕΤ Πιερίας | https://plinetpierias.gr

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

Προστέθηκε λίστα με λέξεις κλειδιά

Μόλις πληκτρολογήσεις στην textarea "Λέξεις κλειδιά" γίνεται αναζήτηση στη ΒΔ για τις αποθηκευμένες λέξεις κλειδιά που ταιριάζουν με την πληκτρολόγηση.

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

Με το κλικ ενημερώνεται η textarea με τη λέξη που κλικάραμε στη λίστα. Για την επόμενη λέξη κλειδί αρκεί να μπει κόμμα (,) στο τέλος και ξαναξεκινάει  η διαδικασία.

Ελπίζω teokarts να είναι όπως το φαντάστηκες.

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

ΥΓ: Προσοχή μη μου έφυγε κάποιo bug! Δοκιμές και backup, backup,  backup, ...

Θοδωρής Καρτσιώτης

Προφανώς είμαι ακόμη σε παλιά έκδοση.... :-) Και μια που το ανέφερα, πως προτείνεις να αναβαθμιστώ. Εξαγωγή της βάση με PhpMyAdmin, εγκατάταση της πιο πρόσφατης έκδοσης και μετά import της βάσης με τον ίδιο τρόπο;

Υπάρχει κάποιος μπούσουλας;
ΥΠΛΗΝΕΤ Πιερίας | https://plinetpierias.gr

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

Δεν ξέρω ποια βάση δεδομένων έχεις.

Τι θα έκανα εγώ:

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

Αν συμφωνούν τότε συνεχίζεις με την παλιά

Αν διαφωνούν

Τότε με μια SQL (εδώ για το table `users`)

INSERT INTO `new-database`. `users`
(`id`, `name`, `username`, `email`, `password`, `role_id`, `remember_token`, `active`, `created_at`, `updated_at`)
SELECT `id`, `name`, `username`, `email`, `password`, `role_id`, `remember_token`, `active`, `created_at`, `updated_at`
FROM  `old-database`.`users`;

περνάς τα δεδομένα.

ΠΡΟΣΟΧΗ: Αν η παλιά βάση δεδομένων δεν έχει το field `active` (επειδή προστέθηκε στην πορεία)

τότε αντί για `active` γράφω την τιμή του "1" (που σημαίνει ΕΝΕΡΓΟΣ)


Κάτι αντίστοιχο πρέπει να γίνει για τους πίνακες που έχουν διαφορές.

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

#98
Για να διευκολύνω την σύγκριση της παλιάς και νέας ΒΔ

με τον phpmyadmin εξήγαγα μόνο τη δομή των πινάκων

μιας παλιάς ΒΔ και της καινουριας και συνέκρινα τα αρχεία με το Meld.

Στις επισυναπτόμενες εικόνες φαίνονται

αριστερά η παλιά ΒΔ    <->    δεξιά η νέα ΒΔ

όπου μπλε έχει αλλαγή (κάποια πεδία τροποποιήθηκαν να έχουν default τιμή NULL)

τροποποιείς τα πεδία

όπου πράσινο προσθήκη (το πεδίο `active` στον πίνακα `users` και ολόκληρος πίνακας `sessions`)

προσθέτεις ένα πεδίο `active` στον πίνακα `users`

τρέχεις τον κώδικα sql που αφορά τον πίνακα `sessions`

Φυσικά έχεις κρατήσει backup της ΒΔ πριν τις αλλαγές

Παραθέτω 4 φωτογραφίες  και άλλες 2 στο επόμενο μήνυμα. +1 ΠΟΥ ΠΑΡΑΛΕΙΦΘΗΚΕ

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

#99
και οι άλλες 2 εικόνες



ΠΡΟΣΘΕΤΩ ΑΚΟΜΗ ΜΙΑ ΠΟΥ ΠΑΡΑΛΕΙΦΘΗΚΕ

Η τελευταία είναι τρίτη στη σειρά και μπαίνει στη μέση των 4 του προηγούμενου μηνύματος

Θοδωρής Καρτσιώτης

Ευχαριστώ πολύ για την αναλυτική επεξήγηση.... Θα το κοιτάξω εκτενώς εντός των ημερών και θα επανέλθω...
ΥΠΛΗΝΕΤ Πιερίας | https://plinetpierias.gr

Θοδωρής Καρτσιώτης

ΥΠΛΗΝΕΤ Πιερίας | https://plinetpierias.gr

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

Παρέλειψα να ενημερώσω το σύνδεσμο.

Καλύτερα να κατεβάσει όποιος θέλει την επιθυμητή έκδοση από την ιστοσελίδα Releases του Github.

https://github.com/g-theodoroy/electronic_protocol/releases

Πρέπει σε κάθε ενημέρωση να ενημερώνω και τα 2 .zip αρχεία για win και linux.
:angel: Η ενημέρωση έγινε αλλά όχι στους συνδέσμους .... :angel:

bugman

Μπορείς να τα έχεις στο dropbox, ή στο google drive, και σε αυτά δεν αλλάζεις σύνδεσμο, ενώ κάνεις αλλαγές.

gspy

#104
Καλημέρα! Υπάρχει τρόπος να αλλάξει η αριθμοδότηση και η περιγραφή των φακέλων αρχειοθέτησης; Επειδή χρησιμοποιώ εντελώς διαφορετική αρίθμηση λόγω του ότι είμαι ΙΕΚ και δεν έχω τα ίδια έγγραφα με τα σχολεία πρωτοβάθμιας και δευτεροβάθμιας και η προσαρμογή θα είναι δύσκολη.

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

Ο Διαχειριστης μπορεί στη σελίδα Διατήρηση να εισαγει νέο φάκελο Φ, να τροποποιήσει η να διαγράψει.

gspy

Παράθεση από: Γεώργιος Θεοδώρου στις 04 Ιουλ 2019, 04:28:49 ΜΜ
Ο Διαχειριστης μπορεί στη σελίδα Διατήρηση να εισαγει νέο φάκελο Φ, να τροποποιήσει η να διαγράψει.
Καλημέρα. Η σελίδα Διατήρηση που είναι; Μήπως εννοείτε Διαχείριση; Αλλά και πάλι δεν βλέπω τρόπο να αλλάξω τα Φ. Για την έκδοση dektop windows μιλάω.

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

 :Μενου->Πρωτοκολλο-.>Διατηρηση

gspy

 :D 1000 ευχαριστώ για την άμεση απάντηση! Πώς δεν το έβλεπα τόση ώρα;

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

Γεια σου Γιώργο και από το δημόσιο τμήμα του forum.

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

file_put_contents(C:\xampp\htdocs\e-protocol-v2\storage\app\arxeio/emails/6604-20190723_email_2019-07-23_12:54:27.html): failed to open stream: No such file or directory

Μπορεί να γίνει κάποιος έλεγχος;
Powered by Elxis : LabSchool.mysch.gr

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

Καλό Φθινόπωρο

Η κλάση laravel-imap που διαβάζει τα email δίνει στον Αποστολέα ένα πίνακα με την ακόλουθη μορφή:

Array
(
   (0)  => stdClass Object

        (
            [personal] => Γεώργιος Θεοδώρου
            [mailbox] => g.theodoroy
            [host] => gmail.com
            [mail] => g.theodoroy@gmail.com
            [full] => Γεώργιος Θεοδώρου < g.theodoroy@gmail.com>
        )
)

Το πρόβλημα δημιουργείται γιατί δεν διαβάζονται σωστά τα Ελληνικά λόγω encoding και η τελική τιμή είναι κενό string

Διορθώθηκε:
            αντί για το πεδίο [full]
            διαβάζονται τα [personal] <[mail]>

Το [mail] είναι πάντα στα Αγγλικά και δεν έχει το παραπάνω πρόβλημα.
Αν το [personal] διαβάζεται επιτυχώς εμφανίζεται και αυτό.

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

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

  • Θέμα
  • Τόπος έκδοσης
  • Αρχή έκδοσης
  • Παραλήπτης
  • Απευθύνεται
  • Λέξεις κλειδιά

Ο διαχειριστής στις ρυθμίσεις μπορεί να επιλέξει ΝΑΙ ή ΟΧΙ εάν θα γίνεται αυτό "Εμφάνιση λίστας με τιμές που ταιριάζουν σε ότι πληκτρολογούμε "

Θοδωρής Καρτσιώτης

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

Μπράβο και ευχαριστούμε!
ΥΠΛΗΝΕΤ Πιερίας | https://plinetpierias.gr

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

Μπράβο Γιώργο!!! Νομίζω πως δεν υπάρχει άλλο πιο ολοκληρωμένο σύστημα ανοικτού κώδικα...
Powered by Elxis : LabSchool.mysch.gr

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

Το Ηλεκτρονικό Πρωτόκολλο ξεκίνησε να φτιάχνεται από το 2015 και όπως βλέπετε όσοι το παρακολουθείτε εξελίσεται συνεχώς προσαρμοζόμενο στις ανάγκες των χρηστών όπως αυτές προκύπτουν μέσα από την καθημερινή χρήση.

Θα με ικανοποιούσε ιδιαίτερα όποιος "εγκατέστησε" και χρησιμοποιεί το Ηλ. Πρωτόκολλο και επιθυμεί να το κοινοποιήσει.

Θα ήθελα να προσθέσω στην αρχική σελίδα του Θέματος σε ποιες υπηρεσίες χρησιμοποιείται.

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

Ευχαριστώ για τα καλά σας λόγια και για τη βοήθεια. Ο "συλλογικός νους" κάνει θαύματα!

Θοδωρής Καρτσιώτης

Τα ενημερωμένα αρχεία απλά τα "πετάω" από πάνω και αντικαθιστούν τα προηγούμενα ή κάνω κάτι άλλο;
ΥΠΛΗΝΕΤ Πιερίας | https://plinetpierias.gr

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

#116
Κατά την κρίση σου.
Στο github στα commits περιγράφονται αναλυτικά οι αλλαγές.
Αν είναι περιορισμένες μπορείς να κάνεις τις τροποποιήσεις με ένα κειμενογράφο.
Αν δεν θες να ανακατευτεις αντικατάστησε τα υπάρχοντα αρχεία με τα καινούρια.
Μια καλή πρακτική είναι να μετονομασεις τα παλιά αρχεία (πχ protocol.blade.php.old) και να τα διαγράψεις οταν βεβαιωθεις ότι η αναβάθμιση δουλεύει όπως αναμένεται. Σε αστοχία επαναφέρεις τα παλια αρχεία.
Τέλος αν στις αλλαγές πρέπει να γίνουν αλλαγές και στη ΒΔ τότε τα πράγματα γίνονται πιο σύνθετα...

Θοδωρής Καρτσιώτης

Ναι, έτσι σκέφτομαι να το κάνω... Βλέπω πάντως ότι οι συγκεκριμένες δεν "πειράζουν" τη βάση δεδομένων σε επίπεδο structure τουλάχιστον.

Έτσι μου φαίνεται από τα λίγα που καταλαβαίνω από το framework του Laravel.
ΥΠΛΗΝΕΤ Πιερίας | https://plinetpierias.gr

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

Είπα να παίξω λίγο με τις λίστες Γιώργο...

Αν θέλω τις εγγραφές προς διεκπεραίωση για 2 χρήστες...

$protocols = $protocols->where('diekperaiosi', '1')->orwhere('diekperaiosi', '2');

Αν θέλω τα ημερήσια πρωτόκολλα...

$protocols = $protocols->where('protocoldate', Carbon::now()->format('d/m/Y'));

(σχετική επισυναπτόμενη εικόνα)

ή κάπου κάνω λάθος;
Powered by Elxis : LabSchool.mysch.gr

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

#119
Μια αναζήτηση στο διαδίκτυο

"laravel get records created_at today"

επέστρεψε

https://stackoverflow.com/questions/33247908/get-only-records-created-today-in-laravel

Η λύση που ταιριάζει περισσότερο σε αυτό που ζητάς είναι (κατά τη γνώμη μου)

->where('created_at', '>=', Carbon::today())



Αν επιθυμείς αυτό που προτείνεις

$protocols = $protocols->where('protocoldate', Carbon::now()->format('Ymd'));

Αυτή η μορφοποίηση ->format('Ymd') χρησιμοποιείται για την ημερομηνία στη ΒΔ (δες ProtocolController, γραμμή 494)

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

Γιώργο και πάλι έδωσες και γρήγορα μάλιστα τα φώτα σου... και οι δύο τρόποι δουλεύουν.
Powered by Elxis : LabSchool.mysch.gr

Γιάννης Γαϊδαρτζής

Καλημέρα!
Σήμερα πήγα να επισυνάψω ένα αρχείο και έλαβα την απάντηση "Λάθος!!! ...... βλέπε συνημμένο.
Τι να ελέγξω;
Πρώην ΚΕΠΛΗΝΕΤ

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

#122
Αυτό το κάνει μόνο με ένα συγκεκριμένο αρχείο;

σκέψη 1η

Ρίξε μια ματιά μήπως το όνομα αρχείου περιέχει απαγορευμένους χαρακτήρες
όπως περιγράφεται στο παρακάτω απόσπασμα από την ιστοσελίδα:
https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file



Use any character in the current code page for a name, including Unicode characters and characters in the extended character set (128–255), except for the following:

    The following reserved characters:
        < (less than)
        > (greater than)
        : (colon)
        " (double quote)
        / (forward slash)
        \ (backslash)
        | (vertical bar or pipe)
        ? (question mark)
        * (asterisk)


σκέψη 2η

Μήπως υπερβαίνει το μέγεθος που έχει οριστεί στην php;

Γιάννης Γαϊδαρτζής

Κάτι με το μήκος του ονόματος παίζει. Υπάρχει όριο;
Πρώην ΚΕΠΛΗΝΕΤ

bugman

Μια ιδέα θα ρίξω εδώ:

Αν υπάρχει ς στο όνομα τότε δεν γυρίζει σε κεφαλαίο Σ, παραμένει ς από Windows 7 και πάνω. Αν γυρίσει το ς σε σ τότε διορθώνει το πρόβλημα!

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

Στείλε μου το αρχείο

Αν έχει απόρρητο περιεχόμενο σβήσε ότι μη επιτρεπτό


να του ρίξω μια ματιά

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

#126
Παράθεση από: igaid στις 19 Μαΐου 2020, 01:23:01 ΜΜ
Κάτι με το μήκος του ονόματος παίζει. Υπάρχει όριο;

Διαβάζοντας εδώ βλέπουμε το όριο

windows

Maximum file name length    255 Unicode characters

https://docs.microsoft.com/de-de/windows/win32/fileio/filesystem-functionality-comparison#limits


τα ίδια και στο linux 255 chars (bytes)


https://stackoverflow.com/questions/34980895/extending-ext4-file-systems-filename-size-limit-to-1012-characters


Μένει να επιβεβαιωθεί ότι το συγκεκριμμένο όνομα είναι πάνω από το όριο.




Σημείωση: Το όνομα συντίθεται από ΑΠ-εεεεμμηη_filename
Η σκέψη πίσω από αυτό είναι να μπορείς εύκολα να ξέρεις ένα αρχείο σε ποιο πρωτόκολλο και ημερομηνία αντιστοιχεί

ΑΠ = Αρ. Πρωτοκόλλου
εεεεμμηη = Ημερομηνία: 4ψήφιο έτος 2ψήφιος μήνας 2ψήφια ημέρα

πχ:
38-20191227_ΕΝΗΜΕΡΩΤΙΚΟ  ΚΟΡΔΗ ΝΕΚΤΑΡΙΟΥ  ΓΙΑ ΤΙΣ ΤΕΛΕΥΤΑΙΕΣ ΕΚΠΑΙΔΕΥΤΙΚΕΣ ΕΞΕΛΙΞΕΙΣ.doc

'Αρα με  5ψήφιο  Αρ.Πρωτ. δεσμεύονται 15 χαρακτήρες για τα πρώτα ...

bugman

#127
Ισχύει το 260 maxpath, αλλά όχι στη unicode έκδοση.
To 260 αναφέρεται σε χαρακτήρες όχι σε bytes. Έτσι για κλήσεις unicode (2bytes κάθε χαρακτήρας) σε bytes είναι διπλάσιο!

Υπάρχει και το όριο στους 32767 χαρακτήρες (συνολικά μαζί με το όνομα αρχείου), αλλά πρέπει να υπάρχει στην αρχή το \\?\
Αυτό γίνεται σε VB6, αν χρησιμοποιήσουμε απευθείας το KERNEL32:
Declare Function CreateFile Lib "KERNEL32" Alias "CreateFileW" (ByVal lpFileName As Long, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long

Επίσης στη VB6 αν θέλω να ανοίξω το F$ το οποίο είναι σε UNICODE, με την Open, την δική της εντολή το μετατρέπω σε DosPath
Open GetDosPath(F$) For Binary Access Read As i

Private Declare Function GetShortPathName Lib "KERNEL32" Alias _
"GetShortPathNameW" (ByVal lpszLongPath As Long, _
ByVal lpszShortPath As Long, ByVal cchBuffer As Long) As Long

Public Function GetDosPath(LongPath As String) As String
Dim s As String
Dim i As Long
Dim PathLength As Long
        i = Len(LongPath) * 2 + 2
        s = String(1024, 0)
        PathLength = GetShortPathName(StrPtr(LongPath), StrPtr(s), i)
        GetDosPath = Left$(s, PathLength)
End Function


Η GetDosPath αν δεν υπάρχει το αρχείο γυρνάει κενό. Έτσι αν θέλω να φτιάξω ένα νέο αρχείο χρησιμοποιώ την  createfile του Kernel32.
Παίζει και σε Windows 64.

Με τον παραπάνω τρόπο μπορώ να έχω ότι χαρακτήρες θέλω, ακόμα και αραβικά.
Αυτό είναι το κανονικό path
c:\users\person\appdata\roaming\microsoft\windows\printer shortcuts\
Και αυτό το shortpath, δείτε ότι βάζει ~1 με αυτό το τρόπο κόβει το όνομα.
c:\users\person\appdata\roaming\MICROS~1\windows\PRINTE~1\


Γιάννης Γαϊδαρτζής

#128
Το παρακάτω αρχείο δεν το δέχεται. Όταν το μετονομάζω σε σκέτο Δελτίο.pdf  το αποθηκεύει. Δοκίμασα να αφαιρέσω τα κενά και δεν άλλαξε τίποτα. Καμιά ιδέα;
Τώρα παρατήρησα ότι το αρχείο το αποθηκεύει στο  C:\protocol\storage\app\arxeio\Φ.1 αλλά το μήνυμα του λάθος το εμφανίζει και δεν φαίνεται το αρχείο στο πρωτόκολλο.
Πρώην ΚΕΠΛΗΝΕΤ

alkisg

Δεν ξέρω αν μπορεί να χρησιμεύσει κάπου, αλλά ας το πετάξω σαν ιδέα... το SMF forum εσωτερικά περνάει τα ονόματα των αρχείων από συνάρτηση md5sum, π.χ. το 'ΔΕΛΤΙΟ ΤΥΠΟΥ ΟΡΓΑΝΙΚΩΝ ΚΕΝΩΝ 2019.2020_signed.pdf' γίνεται 27369b5b702bbae4bea3d1ced4a1f6e3, και στη συνέχεια αποθηκεύει στη βάση το όνομα αρχείου, ενώ στο δίσκο κάτι σαν $database_id-$md5sum (ή θα μπορούσε να γίνει ΑΠ-εεεεμμηη_$md5sum). Ένα πλεονέκτημα είναι ότι δεν υπάρχουν πια περιορισμοί στα ονόματα των αρχείων, ενώ ένα μειονέκτημα το ότι πλέον δεν θα φαίνονται τα ονόματά τους μέσα από απλό file manager.

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

Πρόχειρη απάντηση γιατί το ψάχνω:

Χτυπάει το γράμμα Π γιατί το λογίζει σαν τη σταθερά (pi) π !!!!!!!!!

Αν κάνουμε το όνομα "ΔΕΛΤΙΟ ΤΥ-ΟΥ ΟΡΓΑΝΙΚΩΝ ΚΕΝΩΝ 2019.2020_signed.pdf"  το περνάει !!!

Θα μελετήσω πως πρεπει να γίνει escape στην php

bugman

Παρατήρησα ότι έχει δύο τέλειες το όνομα.
Παλαιότερα για να ξεμπερδεύω με κάτι τέτοια έβαζα μια συνάρτηση που έπαιρνε το όνομα και άλλαζε επιλεγμένους χαρακτήρες με παύλες. Έτσι το όνομα αφενός δεν θα έχει πρόβλημα και αφετέρου θα διαβάζεται.
Η χρήση κωδικοποίησης MD5 δεν βολεύει.

bugman

#132
Συγνώμη αυτό με το Π που γυρίζει σε αριθμό, στα καλά καθούμενα, δεν έχει παίξει σε άλλα ονόματα που έχουν το Π;
Δες εδώ σχετικά με το string interpolation.
https://phppot.com/php/variable-interpolation-in-php/

Εδώ οι μεταβλητές έχουν το $ σαν πρώτο γράμμα. Δεν εξηγείται πώς το Π γίνεται αριθμός.

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

Παράθεση από: igaid στις 20 Μαΐου 2020, 08:21:44 ΠΜ
Το παρακάτω αρχείο δεν το δέχεται. Όταν το μετονομάζω σε σκέτο Δελτίο.pdf  το αποθηκεύει. Δοκίμασα να αφαιρέσω τα κενά και δεν άλλαξε τίποτα. Καμιά ιδέα;
Τώρα παρατήρησα ότι το αρχείο το αποθηκεύει στο  C:\protocol\storage\app\arxeio\Φ.1 αλλά το μήνυμα του λάθος το εμφανίζει και δεν φαίνεται το αρχείο στο πρωτόκολλο.

Επιβεβαιώνω ότι το πρόβλημα είναι στην καταχώριση του ονόματος στη ΒΔ και
όχι στο σύστημα αρχείων. Το αρχείο αποθηκεύεται κανονικά

Θα το δω ...

bugman

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

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

Απλά για να γίνεται κουβέντα !!!

το Π (κεφαλαίο) χτυπάει
το π (μικρό) όχι

bugman

έχεις θέμα με την κωδικοποίηση του αλφαριθμητικού. Τσέκαρέ το.
Φτιάξε ένα πρόγραμμα που θα παίρνει την ίδια εισαγωγή και θα την βάζει σε ένα απλό αρχείο κειμένου.
Μετά δοκίμασε μέσα από το notepad κατά το άνοιγμα να επιλέξεις κωδικοποίηση να δεις πώς το παίρνεις!



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

#137
Παράθεση από: bugman στις 20 Μαΐου 2020, 04:32:41 ΜΜ
έχεις θέμα με την κωδικοποίηση του αλφαριθμητικού. Τσέκαρέ το.
Φτιάξε ένα πρόγραμμα που θα παίρνει την ίδια εισαγωγή και θα την βάζει σε ένα απλό αρχείο κειμένου.
Μετά δοκίμασε μέσα από το notepad κατά το άνοιγμα να επιλέξεις κωδικοποίηση να δεις πώς το παίρνεις!

Έχεις δίκιο bugman

το λάθος που βγάζει η php:

SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: 'Î-ΟΥ...' for column `protocol`.`attachments`.`name` at row 1 (SQL: insert into `attachments` (`protocol_id`, `ada`, `name`, `mimeType`, `savedPath`, `keep`, `expires`, `updated_at`, `created_at`) values (161, ?, ΔΕΛΤΙΟ ΤΥ�-ΟΥ ΟΡΓΑΝΙΚΩΝ ΚΕΝΩΝ 2019.2020_signed.pdf, application/pdf, arxeio/Φ.1.1//8-20200520_ΔΕΛΤΙΟ ΤΥ�-ΟΥ ΟΡΓΑΝΙΚΩΝ ΚΕΝΩΝ 2019.2020_signed.pdf, Κατά κρίση, ?, 2020-05-21 05:28:43, 2020-05-21 05:28:43))

Και χτυπάει μόνο το Π. Έκανα δοκιμή με όλο το ελληνικό αλφάβητο


Η λύση που προτείνω

στο αρχείο app/Http/Controllers/ProtocolController.php

1 (ΑΚΥΡΩΝΕΤΑΙ)

Αντικαταστήστε
το
$filename = $this->filter_filename($filename, false);
με
$filename = $this->filter_filename($filename, true);

στις γραμμές: 536, 708, 1366



2 (ΠΑΡΑΜΕΝΕΙ)

Αντικαταστήστε
το
$filenameToStore = request()->protocolnum . '-' . Carbon::createFromFormat('d/m/Y', request()->protocoldate)->format('Ymd') . '_' . $file->getClientOriginalName();
με
$filenameToStore = request()->protocolnum . '-' . Carbon::createFromFormat('d/m/Y', request()->protocoldate)->format('Ymd') . '_' . $filename;

στις γραμμές: 540, 712

ΠΡΟΣΤΙΘΕΤΑΙ
Σύμφωνα με τη συμβουλή του Άλκη

η γραμμή  1478 αλλάζει
από
~x',
σε
~ux',



Έτσι αξιοποιούμε πλήρως την function filter_filename (γραμμές 1469-1511).


Μετατρέπει βέβαια όλα τα γράμματα από κεφαλαία σε μικρά αλλά όπως μας λέει:

// lowercase for windows/unix interoperability http://support.microsoft.com/kb/100625



Θα ενημερώσω το github


Μεγάλο ευχαριστώ για το ενδιαφέρον και τη βοήθειά σας


Άλκη μόλις ανέβω Γιάννενα θα κεράσω με χαρά τσίπουρα...

alkisg

#138
Γιώργο το πρόβλημα είναι σ' αυτήν τη γραμμή:
      ~x',

Άλλαξέ την σε:
      ~ux',

Αυτό ώστε η preg_replace να ενεργεί ανά UTF-8 χαρακτήρα και όχι ανά byte.
Συγκεκριμένα το Π σε UTF-8 αντιστοιχεί σε "cea0", οπότε το δεύτερο byte του κοβόταν λόγω της γραμμής 1475:
        [\x7F\xA0\xAD]|          # non-printing characters DEL, NO-BREAK SPACE, SOFT HYPHEN

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

Σε ευχαριστώ Άλκη

Την function  filter_filename δεν την έγραψα εγώ

Την υιοθέτησα από το διαδίκτυο.

Είμαι ανοιχτός σε κάθε πρόταση

alkisg

Γιώργο ενημέρωσα το παραπάνω μήνυμά μου με τη σωστότερη λύση. Απλά θέλει ένα "u" για να εφαρμοστεί unicode regex.

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

Με την πολύτιμη συνδρομή του Άλκη ενημερώθηκε η προηγούμενη λύση στη ενδεικνυόμενη.

8) :angel:

bugman

Και αυτό είναι ένα μάθημα για τη χρήση ξένων συναρτήσεων, ακόμα και βιβλιοθηκών.
Κοιτάμε μια περιγραφή και αγνοούμε δύο βασικά πράγματα. Ποιος την έγραψε, και την ανάγνωση του κώδικα (υποτίθεται είναι ανοικτού κώδικα)
Αυτό με το utf8 είναι πολύ συχνή πατάτα, γιατί στα αγγλικά οι χαρακτήρες σε υtf8 γράφονται με ίδια bytes με την Ansi έκδοση.
Παρόμοιο πρόβλημα υπήρχε με μια συνάρτηση που έγραφε στο πρόχειρο των Windows html κώδικα. Ο εμπνευστής της έστελνε Ansi κωδικοποίηση αντί του UTF8. Για αγγλικά έκανε! Προσοχή λοιπόν με τις κωδικοποιήσεις.

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


Γιάννης Γαϊδαρτζής

Μπράβο παιδιά! Συγχαρητήρια για το ομαδικό πνεύμα.
Πρώην ΚΕΠΛΗΝΕΤ

Χρήστος Στέρπης

Καλησπέρα σας,
από το νεότερο μέλος της παρέας σας! Είμαι δάσκαλος -ΠΕ70- δ/ντής σε δημοτικό σχολείο.
Αναζήτησα μια εφαρμογή ηλεκτρ. πρωτόκολλου, δωρεάν, μιας και η σχολική επιτροπή δεν πληρώνει τέτοιες "πολυτέλειες" κι εντυπωσιάστηκα από τη συγκεκριμένη. Προσπάθησα να την εγκαταστήσω, αλλά δεν μπορώ. Το λειτουργικό μου είναι windows 10. Κύριε Θεοδώρου, μήπως θα μπορούσατε να με βοηθήσετε;

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

Για μια γρήγορη δοκιμή κατεβάζεις το συμπιεσμένο αρχείο:

https://github.com/g-theodoroy/electronic_protocol/releases/download/win.0.1/electronic_protocol-win.zip

από: https://github.com/g-theodoroy/electronic_protocol/releases/tag/win.0.1

Αποσυμπιέζεις το zip και τρέχει ...


Δες και το βίντεο: https://youtu.be/e79OPKagz9A. Από το 1:10 και μετά.




Τώρα για κάτι πιο μόνιμο δες στο παρακάτω:

https://github.com/g-theodoroy/electronic_protocol

και ειδικότερα:

https://github.com/g-theodoroy/electronic_protocol#εναλλακτικές-λύσεις


Υπάρχουν αναλυτικές οδηγίες. Αν δυσκολευτείς ρίξε μια φωνή!

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

#147
Βίντεο εγκατάστασης του Ηλ. Πρωτοκόλλου σε windows 10

https://youtu.be/xvDHwjHb7wc

kostas123

καλησπερα ευχαριστω παρα πολυ για το αππ ειναι καταπληκτικο
Ξερετε πως μπορουμε να αντιμετωπισουμε το θεμα με τα email
παντα το θεμα(του e-mail) δεν αναγνωριζετε στα ελληνικα  , Επισης υπαρχει δυνατοτητα αποστολης εξαρχομενου πρωτοκολλου μεσω email?

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

Πάντα ...

προφανώς υπάρχει κάποιο θέμα κωδικοποίησης.


Συνάντησα το ίδιο "πρόβλημα" στην κωδικοποίηση του Αποστολέα


Πως είναι στημένο το πρωτοκολλο;
win + xampp, linux, κάτι άλλο;
Μήπως θα έπρεπε να ενημερωθεί το σύστημα (πχ νεότερο xampp και php)

Μπορείς να συσχετίσεις το πρόγραμμα email που χρησιμοποιεί ο αποστολέας με το πρόβλημα;
Δοκίμασε να στείλεις το ίδιο "προβληματικό email" με άλλο πρόγραμμα, πχ
outlook -> error ή ok
thunderbird -> error ή ok
gmail από φυλλομετρητή -> error ή ok

Μήπως το λειτουργικό σύστημα (win) δεν υποστηρίζει επαρκώς utf-8;
Μπορεί να ρυθμιστεί η χρήση utf-8 encoding στο σύστημα;

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

Η απάντηση στο ερώτημα είναι μάλλον δύσκολη (τουλάχιστον από μένα)

Έχει συναντήσει κανείς άλλος παρόμοιο πρόβλημα;



Τώρα για το 2ο ερώτημα

Η php μπορεί και στέλνει email

Αν υφίσταται η ανάγκη θα μπορούσε να γίνει μια σελίδα αποστολής email η οποία θα δίνει και Αριθμό Πρωτοκόλλου


kostas123

Σας ευχαριστω παρα πολυ θα τα δοκιμασω ολα να δω τι μπορω να κανω .
Εχετε κανει εξαιρετικη δουλεια ευχαριστω πολυ

kostas123

Για να φτιαξω αποστολη email με αριθμο πρωτοκολλου χρησιμοποιω laravel 5.6 .. Εχεις  καποιο documentation .

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

Ένα μικρό γκοογκλαρισμα "laravel 5.6 send email " εμφανίζει διάφορα άρθρα

Η laravel απ ότι διαβάζω έχει πάει στην έκδοση 7

Επίσης το "laravel 5.6 email  form" εμφανίζει οδηγίες για την συνηθισμένη φόρμα επικοινωνίας.



Τώρα για να παντρέψουμε αυτά θα πρέπει

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


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

https://github.com/g-theodoroy/electronic_protocol/blob/master/app/Http/Controllers/ProtocolController.php
γραμμές 1036-1041 & 1401-1417

kostas123

καλησπερα σας
δεν θελω να δημιουργω πρωτοκολλο μεσω email .
Θελω απλα να εχω επιλογη να στελνει e-μαιλ ενα εξερχομενο πρωτοκολλο που εχει δημιουργηθει ..

kostas123

Στην ουσιια απλα επιλογη να το τραβας και να το στελνεις

kostas123

ο χρηστης μπορει να εχει μια φορμα που θα πληκτρολογει τον αρ πρωτοκολλου και το email που θελει να το στελνει και το εμαιλ να πηγαινει με τα στοιχεια που εχει βαλει σε αυτο το εξερχομενο πρωτοκολλο

2epalkilkis

Καλημέρα,
κι από ένα σχολείο στο Κιλκίς.
σας ευχαριστώ πολύ για τον κόπο και την προσφορά σας!

Εάν κι όταν βρείτε λίγο χρόνο θα ήθελα να σας παρακαλέσω να απαντήσετε στους παρακάτω προβληματισμούς μου:
1) το electronic_protocol-win.zip περιλαμβάνει την τελευταία έκδοση; (χθες που το δοκίμασα διαπίστωσα το πρόβλημα με το γράμμα Π στα αρχεία). Η έκδοση αυτή μπορεί να χρησιμοποιηθεί για ένα σχολείο με μία θέση μόνο εργασίας σε win7 32bit ή είναι μόνο για λόγους επίδειξης και πρέπει να πάμε σε λύση με xampp;
2) υπάρχει λύση να τοποθετηθεί η εφαρμογή στο webhost του ΠΣΔ?

ευχές!

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

Καλημέρα

Όπως αναφέρεται στο github:

g-theodoroy released this on 26 Jan ·
7 commits to master since this release

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

Τώρα για το ερώτημα σου αν θα δουλεύει και πως

Προσωπικά προτείνω ένα Η/Υ να τρέχει lamp server (linux apache mysql php).
Πολλοί ( μάλλον οι περισσότεροι) που αισθανονται οικεία με τα windows χρησιμοποιούν xampp η wamp.
Στην ανάγκη να καλυφθούν οι χρήστες windows ( δώστε μας ένα πρόγραμμα εγκατάστασης!!!) φτιάχτηκε η εναλλακτική. Μπορεί να δουλέψει τηρουμένων των αναλογιών.

Διαβάζω ότι προγραμματιστές προσπαθούν να φτιάξουν παρόμοιες εφαρμογές να τρέχουν server σαν τοπικη εφαρμογή win.

Η λύση δουλεύει και σε τοπικό δίκτυο. Μπορείς να έχεις πρόσβαση και από αλλο υπολογιστή στο τοπικό δίκτυο.

Επίσης νομίζω ότι μπορεί να εγκατασταθεί και στο ΠΣΔ. Υπάρχουν διάφοροι οδηγοί για το πώς μπορείς να εγκαταστήσεις μια laravel εφαρμογή σε server όπου έχεις η δεν έχεις ssh προσβαση



2epalkilkis

Ευχαριστώ για την άμεση και κατατοπιστική απάντηση.
Με την "λαχτάρα" μου χθες βράδυ από την "πρώτη γνωριμία", ήμουν βιαστικός κι όντως απρόσεκτος στις πληροφορίες που τόσο λεπτομερώς δίνονται στο github.

kostas123

καλημερα
προσπαθω να αναιβασω το το αππ σε server και ενω φορτώνει κανονικα
την index php μου πεταει 500 error
μηπως μπορειτε να βοηθησετε θελει καποιες ρυθμισεις

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

Υπαρχουν αναλυτικές οδηγίες και βίντεο για εγκατάσταση του πρωτοκόλλου σε

Lamp server (ubuntu)
Win10 & xampp

στο github και στο στέκι

Διευκρινησε τι θέλεις να κάνεις

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

Καλημέρα,

Μάλλον δεν έκανε σωστά τη ρύθμιση στο apache\conf\alias
Powered by Elxis : LabSchool.mysch.gr

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

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

Ρύθμισα και έστησα το Ηλεκτρονικό Πρωτόκολλο στο webhost.sch.gr.

ΟΔΗΓΙΕΣ

Κατεβάστε τα 2 ακόλουθα .zip

protocolRoot.zip
protocol.zip

από εδώ:
https://drive.google.com/drive/u/1/folders/1WAqWdGEh9CccGN9OGXN1JmH2Boen5ifj
https://www.dropbox.com/sh/sd00ikjn311g5hu/AABduqTihxHQH0StOs5HEI4wa?dl=0

Αποσυμπιέστε και ανεβάστε κατά προτίμηση με ftp

το protocolRoot.zip στον ριζικό φάκελο του site (όπως φωτο1)
το protocol.zip στον φάκελο httpdocs (όπως φωτο 2)

ΠΑΡΑΤΗΡΗΣΗ:
Στις φωτογραφίες έχω επιλέξει το checkbox για να φαίνονται οι φάκελοι
Στο site είναι εγκατεστημένο και wordpress (και άλλα αρχεία που εμφανίζονται στον φάκελο httpdocs)

Περιηγηθείτε στο

http(s)://[ONOMA].mysch.gr/protocol

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

#163
Τρελαθήκαμε!!!

Σας παραθέτω δύο εικόνες από δύο server

φωτο1 webhost3 (Πάτρα)
φωτο2 webhost4 (Κιλκίς)

Είναι οι ρυθμίσεις php

Προσέξτε τις disable_functions

Στον webhost3 μόνο opcache_get_status
Στον webhost4 "ουκ ολίγες"


Μαντέψτε

Στο Κιλκίς δεν δουλεύει !!!!!!!!!!!!!!!!

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

Παράθεση από: Γεώργιος Θεοδώρου στις 08 Σεπ 2020, 05:20:48 ΜΜ
Καλησπέρα σας

Ρύθμισα και έστησα το Ηλεκτρονικό Πρωτόκολλο στο webhost.sch.gr.

ΟΔΗΓΙΕΣ

Κατεβάστε τα 2 ακόλουθα .zip

protocolBase.zip: https://drive.google.com/file/d/1PrA2jCombPdlS66tJmUitqrd-aMpTifu/view?usp=sharing
protocol.zip: https://drive.google.com/file/d/1xv-jMVxxpk2zkIhEBtnZ6mp4uRBBdQds/view?usp=sharing

Αποσυμπιέστε και ανεβάστε

το protocolBase.zip στον ριζικό φάκελο του site (όπως φωτο1)
το protocol.zip στον φάκελο httpdocs (όπως φωτο 2)

ΠΑΡΑΤΗΡΗΣΗ:
Στις φωτογραφίες έχω επιλέξει το checkbox για να φαίνονται οι φάκελοι
Στο site είναι εγκατεστημένο και wordpress (και άλλα αρχεία που εμφανίζονται στον φάκελο httpdocs)

Περιηγηθείτε στο

http(s)://[ONOMA].mysch.gr/protocol


Τροποποιήθηκε ο κώδικας.


Υπάρχει πλέον και null επιλογή λογαριασμού email στις ρυθμίσεις.

Όταν ο λογαριασμός email είναι null απενεργοποιείται η ανάγνωση email

ΠΑΡΑΤΗΡΗΣΗ: Οi αλλαγές ισχύουν μόνο στο παρόν protocolBase.zip. Πιθανότατα μελλοντικά να περάσουν στον κώδικα του github

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

Παράθεση από: Γεώργιος Θεοδώρου στις 08 Σεπ 2020, 07:15:49 ΜΜ
Τρελαθήκαμε!!!

Σας παραθέτω δύο εικόνες από δύο server

φωτο1 webhost3 (Πάτρα)
φωτο2 webhost4 (Κιλκίς)

Είναι οι ρυθμίσεις php

Προσέξτε τις disable_functions

Στον webhost3 μόνο opcache_get_status
Στον webhost4 "ουκ ολίγες"


Μαντέψτε

Στο Κιλκίς δεν δουλεύει !!!!!!!!!!!!!!!!


ΤΟ ΠΣΔ ΑΝΤΑΠΟΚΡΙΘΗΚΕ ΚΑΙ ΑΛΛΑΞΑΝ ΟΙ ΡΥΘΜΙΣΕΙΣ ΣΤΟΝ WEBHOST4

Σύμφωνα με το email συναδέλφου:

... το ΠΣΔ ικανοποίησε το αίτημά μου την Παρασκευή 11/9 και ενεργοποίησε τις disabled php functions


Συμπέρασμα: Στο Κιλκίς ΔΟΥΛΕΥΕΙ

Γιάννης Γαϊδαρτζής

Καλησπέρα,

Έχω εγκαταστήσει ubuntu server 20,04. Μπορώ να εγκαταστήσω την εφαρμογή ή θα έχω θέματα;
Πρώην ΚΕΠΛΗΝΕΤ

Γιάννης Γαϊδαρτζής

Καλημέρα,
Τελικά αποφάσισα να εγκαταστήσω το Ηλ. πρωτόκολλο σε ubuntu server 20,04. Όταν εκτελώ την εντολή:

composer install

επιστρέφει τα παρακάτω σφάλματα. Έχω ενεργοποιήσει τα extensions imap, mbstring στο php.ini. Πρέπει να ελέγξω όλα τα ini αρχεία;

PHP Warning:  PHP Startup: Unable to load dynamic library 'imap' (tried: /usr/lib/php/20170718/imap (/usr/lib/php/20170718/imap: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/imap.so (/usr/lib/php/20170718/imap.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mbstring' (tried: /usr/lib/php/20170718/mbstring (/usr/lib/php/20170718/mbstring: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/mbstring.so (/usr/lib/php/20170718/mbstring.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for erusev/parsedown 1.7.3 -> satisfiable by erusev/parsedown[1.7.3].
    - erusev/parsedown 1.7.3 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
  Problem 2
    - Installation request for laravel/framework v5.8.10 -> satisfiable by laravel/framework[v5.8.10].
    - laravel/framework v5.8.10 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
  Problem 3
    - Installation request for webklex/laravel-imap 1.4.1 -> satisfiable by webklex/laravel-imap[1.4.1].
    - webklex/laravel-imap 1.4.1 requires ext-imap * -> the requested PHP extension imap is missing from your system.
  Problem 4
    - Installation request for phar-io/manifest 1.0.3 -> satisfiable by phar-io/manifest[1.0.3].
    - phar-io/manifest 1.0.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
  Problem 5
    - Installation request for phpunit/php-code-coverage 6.1.4 -> satisfiable by phpunit/php-code-coverage[6.1.4].
    - phpunit/php-code-coverage 6.1.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
  Problem 6
    - Installation request for phpunit/phpunit 7.5.8 -> satisfiable by phpunit/phpunit[7.5.8].
    - phpunit/phpunit 7.5.8 requires ext-dom * -> the requested PHP extension dom is missing from your system.
  Problem 7
    - Installation request for theseer/tokenizer 1.1.2 -> satisfiable by theseer/tokenizer[1.1.2].
    - theseer/tokenizer 1.1.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
  Problem 8
    - laravel/framework v5.8.10 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - beyondcode/laravel-dump-server 1.2.2 requires illuminate/console 5.6.*|5.7.*|5.8.* -> satisfiable by laravel/framework[v5.8.10].
    - Installation request for beyondcode/laravel-dump-server 1.2.2 -> satisfiable by beyondcode/laravel-dump-server[1.2.2].

  To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/7.2/cli/php.ini
    - /etc/php/7.2/cli/conf.d/10-opcache.ini
    - /etc/php/7.2/cli/conf.d/10-pdo.ini
    - /etc/php/7.2/cli/conf.d/20-calendar.ini
    - /etc/php/7.2/cli/conf.d/20-ctype.ini
    - /etc/php/7.2/cli/conf.d/20-exif.ini
    - /etc/php/7.2/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.2/cli/conf.d/20-ftp.ini
    - /etc/php/7.2/cli/conf.d/20-gettext.ini
    - /etc/php/7.2/cli/conf.d/20-iconv.ini
    - /etc/php/7.2/cli/conf.d/20-json.ini
    - /etc/php/7.2/cli/conf.d/20-phar.ini
    - /etc/php/7.2/cli/conf.d/20-posix.ini
    - /etc/php/7.2/cli/conf.d/20-readline.ini
    - /etc/php/7.2/cli/conf.d/20-shmop.ini
    - /etc/php/7.2/cli/conf.d/20-sockets.ini
    - /etc/php/7.2/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.2/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.2/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.2/cli/conf.d/20-tokenizer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
Πρώην ΚΕΠΛΗΝΕΤ

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

#168
Απ ότι φαινεται πρέπει να εγκαταστήσεις

το php-imap

https://www.ubuntuupdates.org/package/core/focal/universe/base/php-imap

και το php-mbstring

https://www.ubuntuupdates.org/package/core/focal/universe/base/php-mbstring



Ένα googlάρισμα "install laravel in ubuntu 20.04" μου έδωσε την παρακάτω ιστοσελίδα

https://tecadmin.net/install-laravel-ubuntu-20-04/

όπου συνιστά


Install PHP

sudo apt install zip unzip software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt install -y php7.4 php7.4-gd php7.4-mbstring php7.4-xml php-zip


προφανώς σε αυτά θα πρέπει να προστεθεί και php7.4-imap

https://packages.ubuntu.com/focal-updates/php7.4-imap

Γιάννης Γαϊδαρτζής

Πρώην ΚΕΠΛΗΝΕΤ

Δημήτρης Γκίνης

Γιώργο καλημέρα.

Εγκατάσταση σε  windows 10 vm  με χρήση xampp, βάση=mysql->

Έχω την εξής παρατήρηση: αν μετά την εγκατάσταση και αυτόματη δημιουργία των κατάλληλων πινάκων στη βάση protocol, δημιουργήσεις νέο χρήστη που να έχει δικαιώματα μόνο σε αυτή τη βάση (για λόγους ασφαλείας) ή ακόμη και αν αλλάξεις το password για τον root (κενό κατά την εγκατάσταση) η εφαρμογή δεν σηκώνεται (εννοείται ότι έχεις αλλάξει τις σχετικές εγγραφές στα \protocol\.env και  \protocol\config\database.php). Από την άλλη αν αλλάξεις πχ το password για τον root πριν την αυτόματη δημιουργία των tables στη βάση, η διαδικασία δεν ολοκληρώνεται (acess denied).

Το παραπάνω θεωρώ ότι ενέχει κινδύνους, το να μη σε αφήνει δηλαδή να αλλάξεις χρήστη στη βάση ή να αλλάξεις pawword στον root.
Μπορεί να αλλάξει ??

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

Νομίζω ότι πρέπει να καθαρίσεις την config:cache ώστε να δει τις νέες ρυθμίσεις

https://stillat.com/blog/2016/12/07/laravel-artisan-config-command-the-clear-command

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

Αν έχεις τρέξει php artisan optimize έχουν δημιουργηθεί αρχεία config από τα οποία διαβάζονται οι ρυθμίσεις.

Δημήτρης Γκίνης

Παράθεση από: Γεώργιος Θεοδώρου στις 19 Νοε 2020, 03:18:25 ΜΜ
Αν έχεις τρέξει php artisan optimize έχουν δημιουργηθεί αρχεία config από τα οποία διαβάζονται οι ρυθμίσεις.
Αυτό δεν περιλαμβάνεται στις οδηγίες. Πότε το τρέχεις;
Τι θέλω:
1) Να άλλάξω το password του root (κενό αρχικά)
2) Η εφαρμογή να χρησιμοποιεί άλλον λογαριασμό για πρόσβαση στη βάση protocol (πχ protocol_user με δικαιώματα μόνο στην protocol)
Με βάση τα παραπάνω, σε που και τι πρέπει να αλλάξω στην διαδικασία εγκατάστασης;
Thanks...

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

Καλημέρα

Το Ηλ. Πρωτόκολλο χρησιμοποιεί το framework Laravel


Για τη δημιουργία και την παροχή δικαωμάτων σε mysql user μετά από googlάρισμα βρήκα αυτά.

ΑΦΟΡΟΥΝ Xampp

https://stackoverflow.com/questions/5986635/create-a-new-mysql-user-in-xampp

https://chartio.com/resources/tutorials/how-to-grant-all-privileges-on-a-database-in-mysql/#database-specific-privileges

Laravel

Αλλάζεις και τις ρυθμίσεις στο Laravel ( .env, /app/config/database.php)

καθαρίζεις τυχόν cache

Και λογικά πρέπει να τρέχει.


Είναι ζήτημα xampp - mysql - laravel


Δημήτρης Γκίνης

#174
Καλησπέρα και πάλι.

Στη mysql, για τη δημιουργία χρήστη (pr0t0c0l_us3r') στη βάση , την απόδοση δικαιωμάτων για αυτόν τον χρήστη στη βάση αλλά και την αλλαγή του password για τον root δεν τίθεται θέμα.

Αλλά τρέχοντας
php artisan migrate:refresh --seed


μου επιστρέφει:

   Illuminate\Database\QueryException  : SQLSTATE[HY000] [1045] Access denied for user 'pr0t0c0l_us3r'@'localhost' (using password: YES) (SQL: select * from information_schema.tables where table_schema = protocol and table_name = migrations and table_type = 'BASE TABLE')

  at C:\protocol\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|

  Exception trace:

  1   Doctrine\DBAL\Driver\PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'pr0t0c0l_us3r'@'localhost' (using password: YES)")
      C:\protocol\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:31

  2   PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'pr0t0c0l_us3r'@'localhost' (using password: YES)")
      C:\protocol\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:27


Έδωσα και
composer clearcache

, αλλά τα ίδια.

Κάνω κάτι λάθος;

Update: κατσε, γιατί κάτι δεν πάει καλά με τα windows , παραπειραξα ίσως τη registry γιατί σερνόταν το vm και μάλλον χάλασα κάτι (,πχ βγαίνει μήνυμα λάθους όταν προσπαθώ να δώσω από command prompt mysql). Άι σιχτήρ με δαυτα

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

#175
Αγασπητέ Δημήτρη

στο δικό μου σύστημα Archlinux


  • Δημιούργησα μια νέα ΒΔ "protocoltest" με τον phpMyAdmin (φωτ 1)
  • Με το terminal έφτιαξα τον χρήστη "pr0t0col_us3r" και του παραχώρησα προνόμια στη ΒΔ "protocoltest" (φωτ 2)
  • Τροποποίησα το αρχείο ".env" (φωτ 3)
  • Από τον φάκελο του Ηλ.Πρωτοκόλλου έφτιαξα τους πίνακες στη ΒΔ (φωτ 4)


Δεν χρειάστηκε να καθαρίσω cache.
Αν χρειαστεί την καθαριζεις με: php artisan config:clear

εντολές php artisan
  config:cache        Create a cache file for faster configuration loading
  config:clear         Remove the configuration cache file

Για να γεμίσει πλήρως η ΒΔ (table keepvalues) πρέπει να τρέξουμε και:
php artisan db:seed --class=KeepvaluesTableSeeder

Στη διάθεσή σου όποτε θέλεις και τηλεφωνικά ...

ΥΣΤΕΡΟΓΡΑΦΟ: Τι τα θέλεις τα windows; ... !!!

Δημήτρης Γκίνης

Εγώ έχω αναλάβει την αρχική εγκατάσταση 2 συστημάτων πρωτοκόλλου (και την μετάπτωση των δεδομένων από παλιά εφαρμογή που χρησιμοποιείται) προκειμένου να αξιολογηθούν.
Από εκεί και πέρα τη συντήρηση θα την αναλάβει άλλος που θέλει windows, οπότε έχω στήσει 2 VM σε ubuntu host.

Δημήτρης Γκίνης

Το ξανακάνω από την αρχή.
Στο config/database.php, στη γραμμή 49 δεν θα πρέπει να αλλάξει ο χρήστης από root σε πχ protocol_user? Αντίστοιχα στη γραμμή 50 το password του protocol_user, σωστά?
Στις οδηγίες αναφέρεις αλλαγές μόνο στις γραμμές 48 και 50

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

Πολύ σωστά.
Πρέπει να αλλάξει ο χρήστης "root" στον νέο χρήστη "pr0t0c0l_us3r"


Οι οδηγίες συντάχθηκαν με βάση τις ελάχιστες αλλαγές που πρέπει να γίνουν για να δουλέψει το Ηλ.Πρ. σε συνάρτηση βεβαίως με τα προτεινόμενα πιο πάνω (πχ. ότι ο χρήστης θα είναι ο "root").

Τώρα το αρχείο config/database.php

με τον κώδικα: 'username' => env('DB_USERNAME', 'root'),
αν βρεί στο αρχείο .env την μεταβλητή 'DB_USERNAME' <> '' τη χρησιμοποιεί
αλλιώς τη default value = "root"
Αυτός είναι ο σχεδιασμός του framework Laravel


Δημήτρης Γκίνης

Λοιπόν, το ξανάστησα από την αρχή αλλά και πάλι το ίδιο πρόβλημα εμφανίστηκε.
php artisan migrate:refresh --seed

εμφανίζεται το ίδιο μήνυμα λάθους
Illuminate\Database\QueryException  : SQLSTATE[HY000] [1045] Access denied for user 'pr0t0c0l_us3r'@'localhost' (using password: YES) (SQL: select * from information_schema.tables where table_schema = protocol and table_name = migrations and table_type = 'BASE TABLE')

  at C:\protocol\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|

  Exception trace:

  1   Doctrine\DBAL\Driver\PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'pr0t0c0l_us3r'@'localhost' (using password: YES)")
      C:\protocol\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:31

  2   PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'pr0t0c0l_us3r'@'


Από command prompt, αν συνδεθείς στη βάση ως pr0t0c0l_us3r και δώσεις
select * from information_schema.tables where table_schema = protocol and table_name = migrations and table_type = 'BASE TABLE'
(η οποία αποτυχία πιο πάνω με Access Denied) δουλεύει, άρα η βάση είναι ΟΚ.

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

Δημήτρης Γκίνης

Περιεχόμενα .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=protocol
DB_USERNAME=pr0t0c0l_us3r
DB_PASSWORD=s3r5v7m@#


database.php:
'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'prοtocol'),
            'username' => env('DB_USERNAME', 'pr0t0c0l_us3r'),
            'password' => env('DB_PASSWORD', 's3r5v7m@#'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_general_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => 'InnoDB',
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],


.htaccess:
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On
	RewriteBase /protocol
....


Σημείωση: όταν δώσες:
composer install

"γκρινιάζει" ότι δεν είναι ενεργοποιημένο το imap στο c:/xampp/php/php.ini και σου ζητάει μετά να τρέξεις:
composer update
. Μετά από αυτό το
composer install
ολοκληρώνεται με κάποια warnings για κάποια πρόσθετα που καλό ειναι να μην χρησιμοποιούνται (non critical πιστεύω)

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

Γηράσκω αεί διδασκόμενος!!!

Αφου μας παίδεψε όλη την ημέρα βρήκαμε ότι ο χαρακτήρας #
είναι ειδικός χαρακτήρας για το αρχείο .env ( μετατρέπει ότι είναι μετά από αυτό σε σχόλιο).

Για να υπάρξει το # στο password πρέπει να κλειστεί σε εισαγωγικά:

ΛΑΘΟΣ: aswe#126!
ΣΩΣΤΟ: "aswe#126!"


Πηγή:

https://stackoverflow.com/questions/60522667/storing-as-password-in-env-file

ΠαράθεσηAs per Laravel Documenation

"Laravel" treats # as comment. So if there is space or # in your password then you have to enclosed it in double quotes("")


Δημήτρης Γκίνης

Πρωτοκόλληση εισερχόμενων email, μερικές παρατηρήσεις:

1. Όταν το επιλέξεις για πρώτη φορά, φέρνει όλα τα μηνύματα που βρίσκει ταξινομημένα κατά ημερομηνία (παλιότερα προς νεότερα). Δεδομένου ότι ο οργανισμός που θα εγκαταστήσει την εφορμογή θα έχει στο mailbox πιθανόν αρκετές εκατοντάδες μηνύματα για τα οποία θα πρέπει να επιλέξει χειροκίνητα για το καθένα σήμανση ως αναγνωσμένα, θα ήταν προτιμότερο να ορίζεται μια ημερομηνια από την οπία και ύστερα να φέρνει μηνύματα (πχ από την ημερομηνία εγκατάστασης,  την ημερομηνία κανονικής λειτουργίας ή όποια τέλως πάντων ορίσει ο διαχειριστής), πχ ορίζοντας την ημερομηνία στην imap_search (αν υποθέσουμε ότι χρησιμοποιείς αυτή)

2. Κάθε φορά που πατάς "Σήμανση ως αναγνωσμένο" ή "καταχώρηση email" σε κάποιο μήνυμα, εξαφανίζονατι από τη σελίδα τα προηγούμενα από αυτό μηνύματα (για τα οποία φυσικά έχει επιλεγεί κάτι από τα 2), το ίδιο το μήνυμα παραμένει μέχρι να πατήσεις "Σήμανση ως αναγνωσμένο" ή "καταχώρηση email"  σε επόμενο μήνυμα (εκτός αν κάνεις refresh της σελίδας)

Δημήτρης Γκίνης

Αναζήτηση πρωτικόλλου:

Στο πεδίο Διεκπεραίωση γίνεται αναζήτηση με το userid, πιο βολικό θα ήταν με το όνομα του χρήστη (όχι με το username πχ αναζήτηση με το Δημήτρης Γκίνης, όχι με το username=dimginis ή userid=4).


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

Σας ενημερώνω για κάποιες τροποποιήσεις και προσθήκες:

  • Τροποποίηση του slug των ρυθμίσεων από /config σε /settings γιατί χτύπαγε στον webhost.sch.gr
  • Η αναζήτηση στο πεδίο "Διεκπεραίωση" γίνεται πλέον με το όνομα χρήστη (πριν με τον κωδ.χρήστη)
  • Ορίστηκε και περιορίστηκε ο αριθμός ημερών που ελέγχονται τα εισερχόμενα imap-emails σε 7. Ο αριθμός ημερών μπορεί να αλλάξει από τις ρυθμίσεις.
  • Προστέθηκε δυνατότητα ειδοποίησης με email του Διεκπεραιωτή όταν του ανατίθεται ένα Πρωτόκολλο.
  • Το παραπάνω (ειδοποίηση Διεκπεραιωτή) μπορεί να γίνει με τη χρήση άλλου "εσωτερικού" email εφόσον ρυθμιστεί στο config/intra-mail.php.

ΠΑΡΑΚΑΛΩ ΟΣΟΙ ΕΧΕΤΕ ΠΡΩΤΟΚΟΛΛΑ ΣΕ ΧΡΗΣΗ ΑΝΑΒΑΘΜΙΣΤΕ ΠΡΟΣΕΚΤΙΚΑ ΚΑΙ BACKUP, BACKUP, BACKUP ...
Αν εντοπίσετε κάποιο bugάκι ρίξτε μια φωνή  :angel:

Ευχαριστώ τον Δημήτρη Γκίνη για τις υποδείξεις




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

Το Ηλ. Πρωτοκολλο ΑΝΑΒΑΘΜΙΣΤΗΚΕ

Πέρασε στην Laravel 7

ΣΣ: Η τρέχουσα Laravel είναι η 8

Όσοι έχετε Πρωτόκολλο σε χρήση αναβαθμίστε με προσοχή ...

https://github.com/g-theodoroy/electronic_protocol/commits/master
Commits: 9053610 & f8e9e4e

Οι αναβαθμίσεις είναι απαραίτητες καθώς οι βιβλιοθήκες στις οποίες στηρίζεται και χρησιμοποιεί το Ηλ.Πρ. (php, laravel, ...) αναβαθμίζονται.

Προσεχώς και αναβάθμιση στην Laravel 8



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

Τροποποιήθηκε η δυνατότητα αποστολής Αποδείξεων παραλαβής με email

Πλεον υπάρχουν οι ακόλουθες δυνατότητες:

  • Αποστολή αποδ.παρ. όταν καταχωρίζουμε πρωτόκολλα από εισερχόμενα email.

    • σε email που πληκτρολογούμε σε textbox
    • αν δεν πληκτρολογήσουμε στο Reply-to του email
    • αν δεν υφίσταται Reply-to στον αποστολέα From του email
  • Όταν καταχωρίζουμε Νέο Πρωτόκολλο αυτόματα με την αποθήκευση εφόσον συμπληρωθεί το email και το επιτρέπουν οι ρυθμίσεις
  • Στην Επεξεργασία πρωτοκόλλου συμπληρώνοντας το email και πατώντας το κουμπί Απόδειξη με Email

Η Απόδειξη Παραλαβής περιέχει όλα τα πεδία του Πρωτοκόλλου που έχουν δεδομένα (όχι κενά).

Έτσι μπορεί να σταλεί και εξερχόμενο Πρωτόκολλο όπως είχε ζητήσει ο kostas123 ή να ξανασταλεί κλπ κλπ

Παράθεση από: kostas123 στις 06 Ιουλ 2020, 01:35:10 ΜΜ
καλησπερα σας
δεν θελω να δημιουργω πρωτοκολλο μεσω email .
Θελω απλα να εχω επιλογη να στελνει e-μαιλ ενα εξερχομενο πρωτοκολλο που εχει δημιουργηθει ..

Κάθε φορά που στέλνεται email προστίθεται σχόλιο στις Παρατηρήσεις (μέχρι οι παρατηρήσεις να γίνουν μεγάλες πάνω από 250 χαρακτήρες οπότε σταματάμε γιατι δεν χωράει το πεδίο στη ΒΔ)

Με λίγο χέρι στον κώδικα σε 2 αρχεία μπορεί να αποεπιλεγούν ή να ξαναεπιλεγούν πεδία ή να αλλάξει το κείμενο του email ...

Τροποποιήθηκε επίσης η εμφάνιση των εισερχομένων email και κάποιες μικροβελτιώσεις

Ευχαριστώ τον Δημήτρη Γκίνη για τις προτάσεις...

Μπορεί να γίνομαι γραφικός αλλά BACKUP, BACKUP, BACKUP και ΕΝΗΜΕΡΩΣΗ και πάλι BACKUP, ..., ...

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

Προστέθηκαν οι παρακάτω ρυθμίσεις


  • Πως θα διαβάζονται τα email τα παλιά πρώτα και μετά τα νεότερα ή αντίθετα τα νεότερα πρώτα και μετά τα παλαιότερα
  • Πως θα ταξινομούνται αυτά που διαβάζονται με ΑΥΞΟΥΣΑ ή ΦΘΙΝΟΥΣΑ ημερομηνία

Γεγονός είναι ότι η ανάγνωση των email είναι χρονοβόρα διαδικασία (επικοινωνία με server και αρκετά δεδομένα).

Ρυθμίζοντας το πρόγραμμα να διαβάζει και να εμφανίζει λιγότερα μηνύματα (πχ 3 ) αποφεύγουμε καθυστερήσεις.


Θα μπορούσαμε να κερδίσουμε χρόνο αν προηγουμένως με ένα πρόγραμμα ανάγνωσης email "μεταφέραμε" τα email που δεν χρειάζεται να πρωτοκολληθούν στον φάκελο INBOX.beenRead


Διαβάζουμε λοιπόν τα 3 πρώτα μηνύματα από 57 μηνύματα που λάβαμε τις τελευταίες 7 ημέρες.

Αν δεν θέλουμε να "χάσουμε" μηνύματα θα πρέπει να διαβάζουμε πρώτα τα παλαιότερα. Ούτως ή άλλως η πρωτοκόλληση με βάση τη χρονολογική σειρά που λήφθηκαν τα email μου φαίνεται πιο λογική.

Προστέθηκε όμως και η δυνατότητα να λαμβάνουμε τα μηνύματα με αντίστροφη σειρά δηλ τα 3 τελευταία μηνύματα από 57.

Τέλος επιλέγουμε αν αυτά τα 3 μηνύματα θα εμφανίζονται με αύξουσα ή φθίνουσα χρονολογική σειρά.

ΠΑΡΑΤΗΡΗΣΗ
Όσοι έχουν λειτουργικό Ηλ. Πρωτόκολλο σε παραγωγή καλό θα είναι να κρατούν ένα αντίγραφο των αρχείων (BACKUP) πριν προχωρήσουν σε ενημέρωση.
Αν κατά τη διάρκεια της ενημέρωσης κάτι πάει στραβά ή ακόμη η τελευταία ενημέρωση  έχει κάποιο λαθάκι (BUG) θα επαναφέρουν τα λειτουργικά αρχεία.
Το ίδιο θα ήταν προτιμητέο και με τη ΒΔ.
Ο κώδικας είναι μεγάλος!!! Και όλο και κάτι προστίθεται !!! Επίσης γίνονται κάποιες αλλάγες που μπορεί τελικά να μη μας αρέσουν ή να μη δουλεύουν όπως αναμένεται και θα πρέπει να υπαναχωρήσουμε σε προηγούμενη αλλά πιο βελτιωμένη λύση.
Κρατάμε λοιπόν τα παλιά αρχεία μέχρι να βεβαιωθούμε ότι όλα είναι εντάξει.
Αν η αναβάθμιση δεν έχει αλλαγές στη ΒΔ με μια απλή μετονομασία των φακέλων (protocol - protocol-old, protocol-new, ...) περνάμε από τη μία έκδοση στην άλλη χωρίς κόστος.

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

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

Γεια σου Γιώργο,

Πάλι "ζωγραφίζεις".... :-)

Συγχαρητήρια για την δουλειά σου!!!!

Σκέφτεσαι να κάνεις αναβάθμιση στην Laravel 8;



Powered by Elxis : LabSchool.mysch.gr

Δημήτρης Γκίνης

#189
Γιώργο, πώς είπαμε ότι κατεβάζεις νέα ενημέρωση από το git κρατώντας τις αλλαγές που έχεις κάνει πχ σε αρχεία ρυθμίσεων;
Έτσι;;
git fetch https://github.com/laravel/laravel.git
[/s]

Άκυρο, το βρήκα

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

Καλημέρα Δημήτρη

χαίρομαι που σε ακούω.


Θα προσπαθήσω το project να παραμένει λειτουργικό.

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

Έχουν ήδη περάσει 5 χρόνια από την πρώτη απόδοση του Ηλ.Πρ. προς χρήση.

Έχουν γίνει και ακόμη συνεχίζονται βελτιώσεις με τη βοήθεια όλων σας.

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

Παράλληλα αλλάζει και ο "προγραμματιστικός τρόπος σκέψης" μου καθώς συνεχώς ανακαλύπτω και μαθαίνω ...

Επίσης με τιμά ιδιαίτερα η προτίμηση του project όλο και από πιο πολλούς χρήστες.



Παράθεση από: Δημήτρης Κανάς στις 17 Δεκ 2020, 10:44:55 ΠΜ
Γεια σου Γιώργο,

Πάλι "ζωγραφίζεις".... :-)

Συγχαρητήρια για την δουλειά σου!!!!

Σκέφτεσαι να κάνεις αναβάθμιση στην Laravel 8;

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

Δημήτρη ας το κοινοποιήσουμε και στους άλλους:

3 εντολές

git stash
git pull
git stash pop


Περισσότερα εδώ




Παράθεση από: Δημήτρης Γκίνης στις 17 Δεκ 2020, 10:56:36 ΠΜ
Γιώργο, πώς είπαμε ότι κατεβάζεις νέα ενημέρωση από το git κρατώντας τις αλλαγές που έχεις κάνει πχ σε αρχεία ρυθμίσεων;
Έτσι;;
git fetch https://github.com/laravel/laravel.git
[/s]

Άκυρο, το βρήκα

Δημήτρης Γκίνης

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

Έχει εγκατασταθεί και με το νέο έτος θα χρησιμοποιηθεί στη ΔΠΕ Αχαϊας.

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

Γιώργο ευχαριστούμε,
Keep up the good work

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

Προστέθηκαν δυνατότητες

  • ο Αναγνώστης μπορεί όταν του ανατεθεί πρωτόκολλο να το Διεκπεραιώσει ενημερώνοντας την ημνια διεκπεραίωσης
  • Περιορισμοί στους χρήστες που μπορούν να πρωτοκολλήσουν εισερχόμενα email. Μόνο όσοι δηλωθούν στις ρυθμίσεις

ΓΙΑ ΤΗΝ ΙΣΤΟΡΙΑ:
Παιδευτήκαμε με τον Δημήτρη τον Γκίνη 2 ολόκληρες ημέρες για να βρούμε γιατί
όταν σημαίνονταν ένα email ως διαβασμένο ( οπότε έπρεπε να μεταφερθεί στον φάκελο INBOX.beenRead ) ή
καταχωριζόταν στο Πρωτόκολλο ( οπότε έπρεπε να μεταφερθεί στον φάκελο INBOX.inProtocol )
συνέχιζε να εμφανίζεται στα μή Αναγνωσμένα.
Όταν όμως γινόταν refresh στη σελίδα δεν εμφανιζόταν πάλι ( όπως θα έπρεπε να γίνει ).

Σκέψεις για διπλό refresh της σελίδας, διορθώσεις στον κώδικα, κλπ. κλπ.

Η λύση; Απλά μια flag true στην function moveToFolder.
Συμπέρασμα; Υπάρχει πολλή πληροφορία θέλει όμως τρόπο, επιμονή και λιγο κόπο ... για να τη ανακαλύψεις.

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

Προστέθηκε η δυνατότητα οι χρήστες να πλοηγούνται σε σχετικό Πρωτόκολλο που έχει καταχωριστεί στο πεδίο "Σχετικοί αριθμοί"

εφόσον αυτό έχει τη μορφή "ΑρΠρ/εεεε". Αν είναι καταχωρισμένα περισσότερα σχετικά έγγραφα τότε εμφανίζεται λίστα για επιλογή.


Έγινε ένα μικρό συμμάζεμα στον κώδικα.


Αποκαταστάθηκε η λειτουργικότητα "Ξέχασα το password" που είχε διαταραχθεί από τις αναβαθμίσεις.



Παρακαλώ αν υπάρχει κάποιο bug ρίξτε μια φωνή...

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

Χρόνια πολλά κ Καλά χριστούγεννα

Ο κ. Συμεωνίδης μοιράστηκε μαζί μου τις σωστές ρυθμίσεις για χρήση του λογαριασμού email του ΠΣΔ.

Σας κοινοποιώ τις ρυθμίσεις για email.



Φυσικά δεν υπάρχει κανείς περιορισμός στο ποιον πάροχο θα χρησιμοποιήσουμε αρκεί να συμπληρωθούν σωστά οι ρυθμίσεις με αυτές του παρόχου



Ρύθμίση email με το Gmail

Για να ρυθμίσετε το email συμπληρώστε ανάλογα τα στοιχεία στο αρχείο .env.

γραμμές 26 έως 40:


MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=gm@ilusern@me
MAIL_PASSWORD=gm@ilp@ss
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=gm@ilusern@me@gmail.com
MAIL_FROM_NAME="Ηλ. Πρωτόκολλο"


IMAP_HOST=imap.gmail.com
IMAP_PORT=993
IMAP_ENCRYPTION=ssl
IMAP_VALIDATE_CERT=false
IMAP_USERNAME=gm@ilusern@me
IMAP_PASSWORD=gm@ilp@ss
IMAP_DEFAULT_ACCOUNT=default
IMAP_PROTOCOL=imap




Ρύθμίση email με το ΠΣΔ Πανελλήνιο Σχολικό Δίκτυο

MAIL_DRIVER=smtp
MAIL_HOST=mail.sch.gr
MAIL_PORT=25
MAIL_USERNAME=sch_usern@me
MAIL_PASSWORD=sch_p@ss
MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS=sch_usern@me@sch.gr
MAIL_FROM_NAME="Ηλ. Πρωτόκολλο"


IMAP_HOST=mail.sch.gr
IMAP_PORT=143
IMAP_ENCRYPTION=tls
IMAP_VALIDATE_CERT=true
IMAP_USERNAME=sch_usern@me
IMAP_PASSWORD=sch_p@ss
IMAP_DEFAULT_ACCOUNT=default
IMAP_PROTOCOL=imap

Κυριάκος Μαυρίδης

Καλημέρα. Συγχαρητήρια για την πολύ καλή δουλειά που έχετε κάνει με το ηλεκτρονικό πρωτόκολλο. Εδώ και λίγο καιρό το χρησιμοποιούσαμε σε δοκιμαστική βάση για την υπηρεσία μας (με σκοπό με την αρχή του χρόνου να αντικαταστήσει το παλιό πρωτόκολλο).
Μετά τα τελευταία updates παρατηρήσαμε το εξής πρόβλημα: στα εισερχόμενα email πάρα πολλά (όχι όμως όλα) εμφανίζονται με λάθος κωδικοποίηση (όπως στην εικόνα).  Αυτό δε συνέβαινε προηγουμένως. Επίσης στο webmail τα email φαίνονται κανονικά. Δυο δοκιμές με ελληνικό κείμενο από άλλο email (yahoo) τα εμφανίζει σωστά.
Υπάρχει κάτι που μπορούμε να διορθώσουμε;

Ευχαριστούμε πολύ
Μαυρίδης Κυριάκος
ΔΔΕ Κυκλάδων

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

#197
Είναι θέμα κωδικοποίησης  charset "iso-8859-7" <=> "utf-8"

Αυτά τα email δηλώνουν σαν κωδικοποίηση την iso-8859-7

<meta http-equiv=Content-Type content="text/html; charset="iso-8859-7">



Στο αρχείο

app/Http/Controllers/ProtocollController.php

άλλαξε τη γραμμή 1562

από

                $content = $oMessage->getHTMLBody();


σε

                $content =  str_replace("iso-8859-7", "utf-8", $oMessage->getHTMLBody());



Ο νέος κώδικας αλλάζει την κωδικοποίηση σε utf-8 και γίνεται

<meta http-equiv=Content-Type content="text/html; charset="utf-8">


Στο δικό μου σύστημα τα email  διαβάζονται πλέον κανονικά






Το ίδιο συμβαίνει και στην αποθήκευση του email σαν συνημμένου αρχείου. Εκεί όμως δεν φαίνεται
γιατί υπάρχουν 2 δηλώσεις charset και υπερτερεί η 1η που κάνουμε <meta charset="utf-8">


Προαιρετικά: Αν θέλεις στο αρχείο


resources/views/viewEmail.blade.php

γραμμή 60

άλλαξε

το


            <div class="form-control-static col-md-12 col-sm-12  ">{!!$oMessage->getHTMLBody()!!}</div>

σε

            <div class="form-control-static col-md-12 col-sm-12  ">{!! str_replace("iso-8859-7", "utf-8", $oMessage->getHTMLBody()) !!}</div>


Πες μου σε παρακαλώ αν διορθώθηκε ...


Ανέβηκε και στο github

Κυριάκος Μαυρίδης

Ναι! Δούλεψε. Ευχαριστώ για την άμεση απάντηση!
Μια σημείωση. Στον παραπάνω κώδικα για το σετάρισμα του email του ΠΣΔ τελικά σε εμάς έπαιξε με τις παρακάτω ρυθμίσεις (αλλαγή στις ρυθμίσεις IMAP)

MAIL_MAILER=smtp
MAIL_HOST=mail.sch.gr       
MAIL_PORT=25
MAIL_USERNAME=username SCH
MAIL_PASSWORD=pass SCH
MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS=email SCH
MAIL_FROM_NAME="όνομα..."

IMAP_HOST=mail.sch.gr
IMAP_PORT=993
IMAP_ENCRYPTION=ssl
IMAP_VALIDATE_CERT=false
IMAP_USERNAME=username SCH
IMAP_PASSWORD=pass SCH
IMAP_DEFAULT_ACCOUNT=default
IMAP_PROTOCOL=imap

θα το ξανατσεκάρω να δω ότι όλα πάνε καλά. Για την ώρα όμως και τα φέρνει και τα δείχνει σωστά (κωδικοποίηση) και στέλνει αποδεικτικό μετά την πρωτοκόλληση.

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

Συνεχίζουμε να προσπαθούμε να καλύψουμε κάθε πιθανή περίπτωση...

Τα Ελληνικά στο θέμα και στα ονόματα των συνημμένων έρχονται με διαφορετικούς τρόπους ανάλογα με τον πάροχο (gmail, sch, yahoo, κλπ)

Γίνονται συνεχώς διορθώσεις.

ΠΑΡΑΚΛΗΣΗ

ΟΣΟΙ ΕΧΟΥΝ ΠΡΩΤΟΚΟΛΛΟ ΣΕ ΛΕΙΤΟΥΡΓΙΑ


στον φάκελο storage/logs θα βρείτε το αρχείο laravel.log

Διαγράψτε το το πρωί με το ξεκίνημα ώστε να ξεκινήσει να γράφει από την αρχή.

Στείλτε το μου στο mail μου όταν τελειώσει η ημέρα

g.theodoroy@gmail.com



Δημήτρης Γκίνης

Καλή χρονιά!!!
Καταθέτω κάτι που εντοπίστηκε μόλις εχτές:
Κατηγορία:Πρωτοκόλληση email
Συνθήκες: O imap λογαριασμός στον οποίο "κοιτάει" το πρωτόκολλο για εισερχόμενα να είναι @sch.gr
Σύμπτωμα: Όταν ο αποστολέας στέλνει μήνυμα από το webmail classic του ΠΣΔ με συνημμένο αρχείο με ελληνικό όνομα, αυτό (το συνημμένο) δεν εμφανίζεται στο πρωτόκολλο.
Αν το μήνυμα σταλεί από το webmail express του ΠΣΔ ή από κάποιο email client πχ thunderbird εμφανίζεται ΟΚ.
Λύση:Δεδομένου ότι δεν μπορείς να αποκλείσεις το ενδεχόμενο κάποιος να χρησιμοποιήσει το webmail classic του ΠΣΔ (ακόμη και αν ζητηθεί από όλους τους χρήστες -σχολεία και εκπαιδευτικούς- μια διεύθυνσης να χρησιμοποιούν το express) η λύση που βρήκα είναι τα εισερχόμενα μηνύματα από τον imap λογαριασμό @sch να προωθούνται σε ένα gmail account και το πρωτόκολλο να "κοιτάει" αυτό (το gmail)

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

Σε μια προσπάθεια για "καλύτερη εμπειρία χρήστη"

προστέθηκε έλεγχος των δεδομένων προς καταχώριση (form validation) στον καταμετρητή (client)

πριν την οριστική αποστολή της φόρμας.


Με τον τρόπο αυτό δεν ανανεώνεται η σελίδα σε περίπτωση που υπάρχει κάποια απαίτηση στα πεδία προς συμπλήρωση

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



ΠΡΟΣΟΧΗ

ΕΠΕΙΔΗ ΔΥΣΤΥΧΩΣ ΔΕΝ ΜΠΟΡΩ ΝΑ ΤΕΣΤΑΡΩ ΕΠΙΣΤΑΜΕΝΑ ΟΛΕΣ ΤΙΣ ΑΛΛΑΓΕΣ
και
ΤΟ ΠΙΟ ΣΙΓΟΥΡΟ ΤΕΣΤ ΕΙΝΑΙ Η ΠΡΑΓΜΑΤΙΚΗ ΛΕΙΤΟΥΡΓΙΑ

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



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

Προστέθηκε έλεγχος της φόρμας (validation) καταχώρισης email στον φυλλομετρητή (client).


Ο χρήστης ειδοποιείται για τις ελλείψεις και διορθώνει πριν την υποβολή.


Ειδοποιείται αν υπάρχει καταχωρισμένο πρωτόκολλο με το ίδιο

Θέμα ή - και με ίδιο Αριθμό και Ημνια εισερχομένου

έτσι ώστε να αποφασίσει αν θα συνεχίσει ή όχι την καταχώριση

Γιάννης Γαϊδαρτζής

Καλημέρα Γιώργο,
Μετά την τελευταία ενημέρωση έχω ένα θέμα με το email. Όταν έχει μείνει ένα email και πάω να το διαχειριστώ μου πετάει σφάλμα. Δες το συνημμένο.

Καλή Χρονιά!
Πρώην ΚΕΠΛΗΝΕΤ

Δημήτρης Γκίνης

Το επιβεβαιώνω και εγώ. για την ακρίβεια όταν δεν υπάρχουν εισερχόμενα, πηγαίνοντας στο /viewEmails επιστρέφει 500 Server Error.

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

Διορθώθηκε

:angel:

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

#206
 Προτέθηκε η δυνατότητα αποστολής email για διεκπεραίωση ή ενημέρωση σε πολλαπλούς χρήστες

Το select της διεκπεραίωσης επιτρέπει πλέον πολλαπλές επιλογές.
Χωρίζεται σε 2 μέρη τους διεκπεραιωτές και προς ενημέρωση.
Στέλνεται email
                 για ανάθεση σε διεκπεραιωτές
                 για ενημέρωση σε όσους επιλεγούν


Τροποποιήθηκε ο έλεγχος - αποκλεισμός δυνατότητας επεξεργασίας στην Επεξεργασία Πρωτοκόλλου ανάλογα με
                 τον χρόνο δημιουργίας του πρωτοκόλλου,
                 τον χρόνο τελευταίας τροποποίησης και
                 τι έχει συμπληρωθεί (εισερχόμενο - εξερχόμενο πρωτόκολλο)

Εκτός από την απόκρυψη του κουμπιού αποθήκευσης απενεργοποιείται ανάλογα και η δυνατότητα επεξεργασίας των πεδίων


ΠΡΟΣΟΧΗ
ΧΡΕΙΑΖΟΝΤΑΙ ΑΛΛΑΓΕΣ ΣΤΗ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ

Στο table protocols

1. Το πεδίο 'paratiriseis' να αλλάξει ο τύπος του από VARCHAR σε TEXT
               Επιβεβλημένο γιατί οι παρατηρήσεις ξεπερνούν σταδιακά το όριο του VARCHAR(255)

2. Στο πεδίο 'diekperaiosi' να προστεθεί μπροστά από το id χρήστη το 'd' δηλαδή το [id] να γίνει d[id]: 3 => d3, 5 =>d5, 10 => d10, κλπ
              Εξήγηση: βάζοντας 'd' εννοούμε διεκπεραίωση ενώ 'e' => ενημέρωση

ΠΑΡΑΤΗΡΗΣΗ:
Έχει παρατηρηθεί ότι μερικές φορές το Θέμα ξεπερνάει το όριο του πεδίου VARCHAR(255).
Αν αυτό συμβεί στην κανονική πρωτοκόλληση η Laravel το περικόπτει και προσθέτει error mysql στο storage/logs/laravel.log
Αν αυτό συμβεί στην καταχώριση email στο Πρωτόκολλο το "Ηλ Πρωτόκολλο" στέλνει το error ( ένα κόκκινο κατεβατό στον χρήστη).
ΛΥΣΗ
      Προσωρινά όταν συμβεί περικόπτετε χειροκίνητα το θέμα
      Για μόνιμα αλλάξτε τον τύπο του 'thema' σε ΤΕΧΤ


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

ΣΦΥΡΙΞΤΕ ΑΝ ΒΡΕΙΤΕ BUG

Ευχαριστώ τον Δημήτρη Γκίνη για τις υποδειξεις.

falexakos

Γεια σας από την ΔΔΕ Καρδίτσας.

Ελπίζω να μη φαίνεται πολύ αφελές το παρακάτω ερώτημα· πάντως εγώ θα το ρισκάρω. :-)
Σήμερα πρωτοεγκατέστησα την εφαρμογή στο webhost.sch.gr Χρησιμοποίησα τα .zip αρχεία και τις οδηγίες στην σελ. 11 του παρόντος  thread:
https://is.gd/bBFAug Μπήκαν όλα στο: https://dide-new.kar.sch.gr/protocol

Όλα καλά πλην των mails.
Πείραξα λοιπόν τα αρχεία .env και protocolBase/config/imap.php με τα δικά μου στοιχεία για στο ΠΣΔ, όπως περιγράφεται εδώ παραπάνω.
Βλέπω τα εισερχόμενα μηνύματά μου, πλην όμως όταν κλικάρω στο "καταχώριση e-mail" (με ή χωρίς αποστολή απόδειξης) δεν γίνεται τίποτε.
Φαίνεται να πάει να εκτελέσει:
javascript:$('#sendReceipt7648').val(1);sendEmailTo(7648);chkSubmitForm(7648);


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

Σε κάθε περίπτωση, ευχαριστώ πολύ!

Φώτης Αλεξάκος
Υπ. ΠΛΗ.ΝΕ.Τ.
ΔΔΕ Καρδίτσας



 

Δημήτρης Γκίνης

Παράθεση από: falexakos στις 19 Ιαν 2021, 01:15:42 ΜΜ
Αν τώρα το μήνυμα έχει και συνημμένο, μου ζητάει να επιλέξω κάποιον φάκελο, πράγμα που όμως δεν βλέπω πού γίνεται.

Κοίτα λίγο στη διαχείριση (εννοείται ως administrator), -> Ρυθμίσεις->Ρυθμίσεις εισερχομένων email ->Το πεδίο Φάκελος απαιτείται για την πρωτοκόλληση email : κάντο ΝΑΙ και δοκίμασε να δεις τι γίνεται.

Όσον αφορά τα email: στη δική μου περίπτωση (τοπική εγκατάσταση σε ubuntu 1804) δουλεύει καλά η πρωτοκόλληση. Αν αντί για λογαριασμό ΠΣΔ βάλεις google account τι κάνει; Για να δούμε τι θα πει και ο Γιώργος βέβαια.

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

Εγώ ευθύνομαι για αυτό!!!

ΔΕΝ ΠΡΟΛΑΒΑ ( ΙΣΩΣ ΚΑΙ ΑΜΕΛΗΣΑ ) να ενημερώσω τα αρχεία zip.

Επειδή οι αλλαγές είναι "καταιγιστικές" και επειδή δεν ήξερα ότι κάποιος εκτός εμού χρησιμοποιούσε την παραλλαγή αυτή ...


Ας είναι...

Ο σύνδεσμος του ενημερωμένου ProtocolBase.zip:

https://drive.google.com/file/d/1PrA2jCombPdlS66tJmUitqrd-aMpTifu/view?usp=sharing

Το άλλο zip protocol.zip δεν έχει αλλαγές

https://drive.google.com/file/d/1xv-jMVxxpk2zkIhEBtnZ6mp4uRBBdQds/view?usp=sharing

Αν και τώρα κάνει κόλπα μια φωνή να το δούμε....

Γιάννης Γαϊδαρτζής

Καλημέρα στην ομάδα!

Αντιμετωπίζω κάποια θέματα στο πρωτόκολλο:
1. Όταν επιλέγω κάποιο όνομα στην Διεκπεραίωση πολλές φορές προσθέτει αυτόματα και δεύτερο. Δεν μπορώ να καταλάβω σε ποιες περιπτώσεις το κάνει.
2. Το link που στέλνει το πρωτόκολλο στον αναθέτον έχει την μορφή http://localhost/home/7909 και δεν λειτουργεί. Πρέπει να αλλάξω το localhost με τη διεύθυνση της εφαρμογής στο server (π.χ. http://server...../protocol/home/.....).

Αυτά τα λίγα για σήμερα.

Πρώην ΚΕΠΛΗΝΕΤ

Δημήτρης Γκίνης

Παράθεση από: igaid στις 21 Ιαν 2021, 11:50:44 ΠΜ
2. Το link που στέλνει το πρωτόκολλο στον αναθέτον έχει την μορφή http://localhost/home/7909 και δεν λειτουργεί. Πρέπει να αλλάξω το localhost με τη διεύθυνση της εφαρμογής στο server (π.χ. http://server...../protocol/home/.....).
Στο /protocol/.env -> γραμμή 5-> δήλωσε την ip του μηχανήματος και τον φάκελο που είναι στημένη η εφαρμογή (πχ http://10.x.y.10/protocol)

Γιάννης Γαϊδαρτζής

Παράθεση από: Δημήτρης Γκίνης στις 21 Ιαν 2021, 12:50:46 ΜΜ
Στο /protocol/.env -> γραμμή 5-> δήλωσε την ip του μηχανήματος και τον φάκελο που είναι στημένη η εφαρμογή (πχ http://10.x.y.10/protocol)

Λειτουργεί! Το δοκίμασα και με το domain και λειτουργεί κανονικά. Ευχαριστώ.
Πρώην ΚΕΠΛΗΝΕΤ

falexakos

Παράθεση
Ο σύνδεσμος του ενημερωμένου ProtocolBase.zip:

https://drive.google.com/file/d/1PrA2jCombPdlS66tJmUitqrd-aMpTifu/view?usp=sharing

Το άλλο zip protocol.zip δεν έχει αλλαγές

https://drive.google.com/file/d/1xv-jMVxxpk2zkIhEBtnZ6mp4uRBBdQds/view?usp=sharing

Αν και τώρα κάνει κόλπα μια φωνή να το δούμε....

Έκανα τις προτεινόμενες αλλαγές Γιώργο και όλα καλά. Θα το δοκιμάσουμε πιλοτικά στην ΔΔΕ Καρδίτσας (παράλληλα μ' αυτό που χρησιμοποιούμε τώρα) και πιστεύω πως μέσα στη χρονιά θα το καθιερώσουμε.

Πολλά ευχαριστώ και πάλι. Τέτοιο service κανένας ιδιώτης.  ;D

Φώτης

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

#214
Προσαρμογή δικαιωμάτων Συγγραφέων & Αναγνωστών - Εξαγωγή σε xls

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

Β.
Προστέθηκε η δυνατότητα εξαγωγής της εκτύπωσης Πρωτοκόλλου σε αρχείο xls.
Για να κατέβουν οι απαραίτητες βιβλιοΘήκες σε ενεργά πρωτόκολλα
πρέπει να τρέξουμε την έντολή:
composer install --no-dev

Γ.
Διορθώθηκε ένα μικρό bug που οδηγούσε σε λάθη στην in_perilipsi
εισερχομένων μηνυμάτων.

ΠΑΡΑΚΑΛΩ BACKUP και αφου βεβαιωθούμε ότι όλα δουλεύουν ΑΝΤΙΚΑΤΑΣΤΑΣΗ

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

Παράθεση από: igaid στις 21 Ιαν 2021, 11:50:44 ΠΜ
Καλημέρα στην ομάδα!

Αντιμετωπίζω κάποια θέματα στο πρωτόκολλο:
1. Όταν επιλέγω κάποιο όνομα στην Διεκπεραίωση πολλές φορές προσθέτει αυτόματα και δεύτερο. Δεν μπορώ να καταλάβω σε ποιες περιπτώσεις το κάνει.
2. Το link που στέλνει το πρωτόκολλο στον αναθέτον έχει την μορφή http://localhost/home/7909 και δεν λειτουργεί. Πρέπει να αλλάξω το localhost με τη διεύθυνση της εφαρμογής στο server (π.χ. http://server...../protocol/home/.....).

Αυτά τα λίγα για σήμερα.

Αφορά το 1.

ΤΟ ΛΑΘΟΣ

Έστω ότι έχουμε τους χρήστες:

  • Α με id = 1
  • B με id = 12
  • Γ με id = 8
  • ...

Στην ανάθεση πρωτοκόλλου προς διεκπεραίωση για να ξεχωρίσουμε την διεκπεραίωση από την ενημέρωση προθέτουμε

  • 'd' για διεκπεραίωση
  • 'e' για επικοινωνία

Η τιμή που αποθηκεύεται στη ΒΔ έχει τη μορφή

  • 'd12' => διεκπεραίωση από χρήστη Β ( id =12)
  • 'd12,e1,e8' =>διεκπεραίωση από χρήστη Β ( id = 12), ενημέρωση χρήστη με id = 1, ενημέρωση χρήστη με id = 8

Όταν γεμίζει το select Διεκπεραίωση με τους χρήστες ελέγχει αν το id τους περιέχεται στο string από τη ΒΔ και αν ΝΑΙ τότε selected ( ο χρήστης είναι επιλεγμένος)

Οπότε οι συγκρίσεις δίνουν:

  • ΤΟ 'd12,e1,e8' ΠΕΡΙΕΧΕΙ 'd12' => ΣΩΣΤΟ ( ΜΕ ΤΗ ΛΟΓΙΚΗ ΤΟΥ Η/Υ) ΣΩΣΤΟ ( ΣΤΗΝ ΠΡΑΓΜΑΤΙΚΌΤΗΤΑ)
  • ΤΟ 'd12,e1,e8' ΠΕΡΙΕΧΕΙ 'd1' => ΣΩΣΤΟ ( ΜΕ ΤΗ ΛΟΓΙΚΗ ΤΟΥ Η/Υ) ΛΑΘΟΣ ( ΣΤΗΝ ΠΡΑΓΜΑΤΙΚΌΤΗΤΑ)

Η ΛΥΣΗ

Προσθέτουμε κόμμα (,) στο τέλος των συγκρινόμενων string

Οπότε οι συγκρίσεις δίνουν:

  • ΤΟ 'd12,e1,e8,' ΠΕΡΙΕΧΕΙ 'd12,' => ΣΩΣΤΟ
  • ΤΟ 'd12,e1,e8,' ΠΕΡΙΕΧΕΙ 'd1,' => ΛΑΘΟΣ


ΥΣΤΕΡΟΓΡΑΦΟ

Όπως προανέφερα

  • δεν έχω δεδομένα και χρόνο για εξαντλητικές δοκιμές
  • η πραγματική δοκιμή είναι η πραγματική λειτουργία του Πρωτοκόλλου

Ευχαριστώ τον Κυριάκο Μαυρίδη και την ΔΔΕ Κυκλάδων για την επισήμανση.

Γιάννης Γαϊδαρτζής

Μετά την τελευταία ενημέρωση κάτι δεν πήγε καλά.
Δείτε συνημμένο.
Πρώην ΚΕΠΛΗΝΕΤ

Δημήτρης Γκίνης

Για τέτοιες περιπτώσεις, βολεύει ΠΑΡΑ πολύ η εγκατάσταση να γίνεται σε VM αφού πολύ εύκολα πριν από κάθε αναβάθμιση/ενημέρωση μπορείς να πάρεις ένα snapshot ώστε αν κάτι πάει στραβά (και μέχρι να διορθωθεί) να κάνεις restore το spapshot.
Κατά τα λοιπά, δεν έχω κάνει ενημέρωση ακόμη στην τελευταία έκδοση (δεν πρόλαβα να πάρω snapshot) οπότε δεν μπορώ να επιβεβαιώσω το πρόβλημα ή να βοηθήσω.
Ας μιλήσει λοιπόν ο μάστορης...

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

Χρειάζεται το Laravel Excel για να εξάγει αποτελέσματα σε excel που δε το έχεις.

Δηλαδή: composer install --no-dev

Ο Γιώργος θα σου πει τις λεπτομέρειες.....
Powered by Elxis : LabSchool.mysch.gr

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

Παράθεση από: Γεώργιος Θεοδώρου στις 26 Ιαν 2021, 07:01:26 ΜΜ
Προσαρμογή δικαιωμάτων Συγγραφέων & Αναγνωστών - Εξαγωγή σε xls

...

Β.
Προστέθηκε η δυνατότητα εξαγωγής της εκτύπωσης Πρωτοκόλλου σε αρχείο xls.
Για να κατέβουν οι απαραίτητες βιβλιοΘήκες σε ενεργά πρωτόκολλα
πρέπει να τρέξουμε την έντολή:
composer install --no-dev

...


composer install --no-dev

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

Προσπαθώ να δίνω λεπτομερείς οδηγίες για κάθε αναβάθμιση.


Ευχαριστώ ολους σας για τη συμβολή σας

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

Θεωρώ πρέπουσα και πάγια τακτική την παράλληλη εγκατάσταση και αντικατάσταση του ενεργού Πρωτοκόλλου όταν βεβαιωθούμε ότι όλα δουλεύουν ως αναμένεται!!!!

Γιάννης Γαϊδαρτζής

Παιδιά ευχαριστώ για την άμεση αντίδραση και συγνώμη που δεν είχα δει τις τελευταίες οδηγίες.
Εγώ πάντως έχω κάνει μια δεύτερη εγκατάσταση και εκεί δοκιμάζω τις ενημερώσεις.

Υ.Γ. Θέλει composer update για να γίνει η ενημέρωση.
Πρώην ΚΕΠΛΗΝΕΤ

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

Προστέθηκε δυνατότητα αποθήκευσης των εισερχομένων email ως αρχεία .eml

Έτσι μπορούν να ανοίγουν με προγράμματα ανάγνωσης ταχυδρομείου όπως:

Mozilla Thunderbird
Microsoft Outlook Express
Outlook Express

κ.α.

.eml
https://www.reviversoft.com/el/file-extensions/eml
https://fileinfo.com/extension/eml

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

Χάρη στον Δημήτρη τον Γκίνη

ανακαλύφθηκε και διορθώθηκε

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

με αποτέλεσμα σε ένα Πρωτόκολλο με >80000 εγγραφές

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


:angel: Η απειρία του ερασιτέχνη προγραμματιστή !!!  :angel: Πάντα κάτι καινούριο έχουμε να μάθουμε !!!  :angel:

Το ευχαριστώ στον Δημήτρη είναι λίγο ...




Γιάννης Γαϊδαρτζής

Καλημέρα ομάδα,
Σήμερα αντιμετωπίζω κάποιο θέμα. Όταν επιλέγω τα email μου πετάει:

   
Πρώην ΚΕΠΛΗΝΕΤ

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

#226
Έχει παρατηρηθεί πάλι

και έχει διορθωθεί στο ακόλουθο commit (κοίτα στο τέλος )

https://github.com/g-theodoroy/electronic_protocol/commit/44e570c51c5fa493c73d05d8007697dab5790aae


resources/views/viewEmails.blade.php


                      @php 
                          $num++; 
                         if($oMessage->getSubject()){
                            $subject = implode('', array_column(json_decode(json_encode(imap_mime_header_decode($oMessage->getSubject())), true), 'text'));
                          }
                          if(! $subject) $subject = $oMessage->getSubject();
                      @endphp



Επανέρχομαι


Τώρα που το ξανακοιτάζω

ας προσπαθήσουμε να ελέγξουμε αυτό που χτυπάει ( array_column() )

ως εξής:

αλλαγή

if($oMessage->getSubject()){

σε

if( $oMessage->getSubject() && json_decode(json_encode(imap_mime_header_decode($oMessage->getSubject())), true) ){

                      @php 
                          $num++; 
                         if( $oMessage->getSubject() && json_decode(json_encode(imap_mime_header_decode($oMessage->getSubject())), true) ){
                            $subject = implode('', array_column(json_decode(json_encode(imap_mime_header_decode($oMessage->getSubject())), true), 'text'));
                          }
                          if(! $subject) $subject = $oMessage->getSubject();
                      @endphp



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

Σε μια παρόμοια περίπτωση πριν κάνουμε την αλλαγή με το commit

οι συνάδελφοι ακολούθησαν την εξής διαδικασία:


  • Ρύθμισαν το  Πρωτόκολλο να διαβάζει ένα (1) email κάθε φορά. Έτσι εντόπισαν ποιο ακριβώς email δημιουργεί το πρόβλημα
  • Το πέρασαν χειροκίνητα στο Πρωτόκολλο
  • Επανέφεραν τις ρυθμίσεις

Δυστυχώς το Ηλ. Πρωτόκολλο δεν είναι "εφαρμογή ανάγνωσης Ηλεκτρονικής αλληλογραφίας".

Προσπαθούμε όμως να ανταποκρίνεται όσο καλύτερα γίνεται σε αυτά που του ζητάμε να κάνει...

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

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

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

Τα αρχεία μετακινούνται στο νέο φάκελο.

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

Δημήτρης Γκίνης

Γιώργο οι αλλαγές είναι ΟΚ.
Μία ερώτηση:
Τι εννοείς με το ""Ο Φάκελλος πρωτοκόλλου με συνημμένα αρχεία δεν μπορεί να είναι κενός.<br>Για να επιτευχθεί αυτό πρέπει πρώτα να διαγράψετε τα συνημμένα αρχεία.",
Σε δοκιμές που έκανα άλλαξα φάκελο πρωτοκόλλου, ο οποίος μετά την αλλαγή έμεινε κενός (το συνημμένο ήταν το μοναδικό αρχείο)


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

#230
Παράθεση από: Δημήτρης Γκίνης στις 03 Απρ 2021, 08:06:20 ΜΜ
Γιώργο οι αλλαγές είναι ΟΚ.
Μία ερώτηση:
Τι εννοείς με το ""Ο Φάκελλος πρωτοκόλλου με συνημμένα αρχεία δεν μπορεί να είναι κενός.<br>Για να επιτευχθεί αυτό πρέπει πρώτα να διαγράψετε τα συνημμένα αρχεία.",
Σε δοκιμές που έκανα άλλαξα φάκελο πρωτοκόλλου, ο οποίος μετά την αλλαγή έμεινε κενός (το συνημμένο ήταν το μοναδικό αρχείο)


Ξεκινάμε με την παραδοχή ότι:
Ένα συνημμένο αρχείο πρέπει πάντα να έχει φάκελο Φ


Σύμφωνα με τη σκέψη και την υλοποίηση της αλλαγής

αν το πρωτόκολλο έχει συνημμένα

  • το select fakelos δεν εμφανίζει κενή επιλογή
  • κατά την καταχώριση ελέγχεται ότι ο φάκελος δεν μπορεί να είναι κενός

Δημήτρης Γκίνης

Οκ, υπήρξε παρανόηση. Ο γιώργος εννοούσε το πεδίο (field) Φάκελος και εγώ το φάκελο (folder) στον σκληρό δίσκο.

Απόστολος Καραφυλλίδης

#232
Γεια σου Συνάδελφε
καταρχήν συγχαρητήρια για το Ηλεκτρονικό πρωτόκολλο. το εγκατέστησα και κατάφερα να το βάλω σε λειτουργία σε Windows 10. Σκοπεύω να το χρησιμοποιήσω πλέον στο Σχολείο, ένα Γενικό Λύκειο και συγκεκριμένα το 1ο ΓΕΛ Κοζάνης. Όλα λειτουργούν, το μόνο που δεν κατάφερα να κάνει είναι να διαβάζει τα e-mail απο το gmail. Από το ΠΣΔ τα διαβάζει κανονικά. Τις ρυθμίσεις στο .env τις παραθέτω παρακάτω.

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=1gelkozaniprot@gmail.com
MAIL_PASSWORD=pass
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=1gelkozaniprot@gmail.com
MAIL_FROM_NAME="Ηλ. Πρωτόκολλο"


IMAP_HOST=imap.gmail.com
IMAP_PORT=993
IMAP_ENCRYPTION=ssl
IMAP_VALIDATE_CERT=true
IMAP_USERNAME=1gelkozaniprot@gmail.com
IMAP_PASSWORD=pass
IMAP_DEFAULT_ACCOUNT=default
IMAP_PROTOCOL=imap

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

Απόστολος Καραφυλλίδης


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

#234
Καλησπέρα κι από μένα


Έχουν γραφεί μηνύματα που αφορούν στη ρύθμιση email:

https://alkisg.mysch.gr/steki/index.php?topic=6958.msg93351#msg93351
https://alkisg.mysch.gr/steki/index.php?topic=6958.msg93369#msg93369

Από μια πρόχειρη σύγκριση για το gmail κάνε
IMAP_VALIDATE_CERT= false

Επίσης ρύθμισε αυτό που προτείνει ο Δημήτρης ο Γκίνης



Ρυθμίσεις του email γίνονται στα αρχεία

.env
Προσοχή στους special χαρακτήρες. Πρέπει να κλειστούν σε εισαγωγικά.

Από το .env διαβάζουν τα παρακάτω αρχεία χρησιμοποιώντας την helper env('MAIL_USERNAME')

config/mail.php
Το βασικό email της εφαρμογής

config/intra-mail.php
Το 2ο εσωτερικό email ( Είναι προρυθμισμένο όπως και το βασικό. Μπορείς να το αλλαξεις )

και

config/imap.php
Εδώ μπορούν να ρυθμιστούν πολλαπλά email
πχ gmail, sch, ....
Ο διαχειριστής επιλέγει ποιο θα "διαβάζει" η εφαρμογή



Απόστολος Καραφυλλίδης

Ευχαριστώ και πάλι για την πολύτιμη βοήθεια. Το πρόγραμμα λειτουργεί κανονικά

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

Τροποποίηση της πρωτοκόλλησης email

Ενεργοποιήθηκε σελιδοποίηση ( pagination )

Τα email διαβάζονται μέχρι τον αριθμό ημερών πίσω που ορίστηκε και αν είναι
πολλά ( πχ 60 ), έρχονται σε σελίδες ανά 5 ή όσα έχει οριστεί.

Υπάρχει πλέον δυνατότητα πλοήγησης και πρωτοκόλλησης σε email στις επόμενες σελίδες.

Αποτέλεσμα:
Επισκόπηση περισσοτέρων emails αλλά κατέβασμα ανά 5 με συνέπεια λιγότερος χρόνος κατεβάσματος.




ΠΡΟΣΟΧΗ

Έγινε αναβάθμιση στη βιβλιοθήκη PHP που διαβάζει τα email σε νεότερη έκδοση.
Επίσης έγινε γενικότερη αναβάθμιση στις βιβλιοθήκες της PHP.



ΠΡΕΠΕΙ

μετά τις αλλαγές να τρέξουμε την εντολή

composer install --no-dev
ή
composer update --no-dev

για να ενημερωθούν οι βιβιλοθήκες



ΠΡΟΤΕΙΝΩ

ΝΕΑ ΕΓΚΑΤΑΣΤΑΣΗ σε νέο φάκελο
ΚΡΑΤΑΜΕ το "ΠΑΛΙΟ" πρωτόκολλο σε εφεδρεία
Αφού βεβαιωθούμε ότι δουλεύει ΜΕΤΑΠΤΩΣΗ  :)


Φυσικά αν βρείτε κάποιο bug σφυρίξτε  :angel:
Σε κάθε αναβάθμιση βιβλιοθήκης με νεότερη έκδοση ( ενδέχεται να, ή )  υπάρχουν αλλαγές σε κάποιες συναρτήσεις ...
Στις δοκιμές που κάνω δεν μπορώ να εξαντλήσω όλες τις λειτουργίες ...

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

#237
Μετά την τελευταία αναβάθμιση
τα email δεν συμπεριφέρονται "καλά".
Επιστρατεύτηκε νέα βιβλιοθήκη για το διάβασμα των email.
Λίγο υπομονή ....



ΥΛΟΠΟΙΗΘΗΚΕ


Βελτιώθηκε η πρωτοκόλληση email

Τα email πλέον αφού ληφθούν στον server επεξεργάζονται
με νέα βιβλιοθήκη mail-mime-parser η οποία ανταποκρίνεται
πολύ καλύτερα στους Ελληνικούς χαρακτήρες  ;)

Πρέπει να ενημερώσουμε τις βιβλιοθήκες:

composer install --no-dev
ή
composer update --no-dev

ΙΣΧΥΟΥΝ ΤΑ ΠΡΟΗΓΟΥΜΕΝΑ ΓΙΑ ΤΗΝ ΠΡΟΣΕΚΤΙΚΗ ΑΝΑΒΑΘΜΙΣΗ

το νου σας για τυχόν BUG ....

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

Διορθώθηκε η Aναζήτηση γιατί δεν εμφάνιζε σωστά τον αριθμό των Πρωτοκόλλων που βρέθηκαν.

Αν η ρύθμιση για τις γραμμές που επιστρέφει η Αναζήτηση μείνει κενή εμφανίζονται όλα τα Πρωτόκολλα που ταιριάζουν με τα κριτήρια.
Προσοχή σε μεγάλες ΒΔ με πολλές καταχωρίσεις πρέπει να υπάρχει αριθμός εγγραφών (πχ: 30 ή 50 ή ...) που επιστρέφει η Αναζήτηση
γιατί εξαντλείται η μνήμη ή ο χρόνος και καταρρέει η php.

Τροποποιήθηκε η αποθήκευση των σχετικών Πρωτοκόλλων

Έστω ότι καταχωρίζουμε πρωτόκολλο με αριθμό/έτος
"100/2021" και έχει σχετικά Πρωτόκολλα τα "98/2021, 99/2021".

Εφόσον η ρύθμιση το επιτρέπει τότε:

στο 98/2021 καταχωρίζονται σχετικά τα "99/2021, 100/2021"
στο 99/2021 καταχωρίζονται σχετικά τα "98/2021, 100/2021".


Βελτιστοποίηση της απόδοσης του Ηλ. Πρωτοκόλλου

Άρχισα σιγά σιγά και εξετάζω το project με ένα εργαλείο το laravel-debugbar.

Κάνω τροποποιήσεις ώστε

  • να ελαχιστοποιούνται οι κλήσεις στη ΒΔ στις απαραίτητες
  • να καταναλώνονται λιγότεροι πόροι ( μνήμη )

Το αποτέλεσμα θα περιέχεται σε μεταγενέστερο commit


ΠΡΟΣΟΧΗ ΟΤΑΝ ΕΦΑΡΜΟΖΕΤΕ ΤΙΣ ΕΝΗΜΕΡΩΣΕΙΣ ΜΗ ΕΧΟΥΝ ΚΑΝΑ ΖΩΥΦΙΟ (BUG)

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

Βελτίωση της Αναζήτησης Πρωτοκόλλου

Η Αναζήτηση επιστρέφει τα δεδομένα σε σελίδες ( pagination )

και έχει κουμπάκια για πλοήγηση.  ;)

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

Ρύθμιση Εξαγωγής σε Excell

Ορίστηκε σαν προεπιλεγμένη τιμή γραμμών για εξαγωγή Πρωτοκόλλων στο Excell το 5000.

Στις ρυθμίσεις ο διαχειριστής μπορεί να ορίσει μια τιμή πχ: 10000

Αν το παρακάνουμε εξαντλείται η μνήμη και έχουμε ένα ωραίο "Error 500"


Η php πλέον μπορεί να είναι είτε 7.4 είτε 8.0

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

#241
Βελτιστοποίηση του Ηλ. Πρωτοκόλλου


Αγαπητοί φίλοι

βελτιστοποιήθηκε το Ηλ. Πρωτόκολλο με τη χρήση του εργαλείου debugbar


Έχουν περιοριστεί οι άσκοπες κλήσεις στη ΒΔ και γίνεται εξοικονόμηση πόρων.

Επίσης έγινε μετάβαση στην php 8



ΣΚΕΨΕΙΣ ...

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

Νομίζω πως στην παρούσα στιγμή με το φρεσκάρισμα που έγινε θα μπορέσει το παρόν να μας εξυπηρετήσει για λίγο καιρό ακόμα !!!

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


Όπως και να χει ευχαριστώ όλους σας για την πολύτιμη συνεισφορά σας στην εξέλιξη του Ηλ. Πρωτοκόλλου.


Αν εντοπίσετε κάποιο προβληματάκι κατά τη χρήση του ( μόνο τότε εντοπίζονται τα λειτουργικά προβλήματα ) είμαι στη διάθεσή σας

Το ίδιο αν έχετε κάποια καλή υλοποιήσιμη ιδέα ...


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

Το Ηλ. Πρωτόκολλο πέρασε στη Laravel 8


Ενημερώθηκαν οι βιβλιοθήκες του framework στο αρχείο composer.json στις απαιτούμενες εκδόσεις για Laravel 8.

Μπορεί να μην έχει κάποια καινοτόμα "καλούδια" αλλά η καρδιά πλέον είναι laravel 8.



Αφού γίνουν οι αλλαγές πρέπει να τρέξουμε


composer install --no-dev
ή
composer update --no-dev




Παρακαλώ για προσεκτική αναβάθμιση και ανατροφοδότηση για το αποτέλεσμα ...

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

#243
Τι θα γίνει μόλις αλλάξει το έτος από 2021 σε 2022


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

  • το έτος που στέλνει η φόρμα καταχώρισης και
  • το τρέχον έτος

Το έτος που στέλνει η φόρμα καταχώρισης (1) ορίζεται από τον Διαχειριστή στις ρυθμίσεις "Ενεργό έτος πρωτοκόλλησης".
Το τρέχον έτος (2) υπολογίζεται αυτόματα.

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

Σε περίπτωση που δεν θέλω να ξαναρχίσω από την αρχή (νούμερο 1) την πρωτοκόλληση
αλλά θέλω να συνεχίσει στο επόμενο έτος από εκεί που τελείωσε το απελθόν έτος
αφήνω κενό το έτος στη ρύθμιση "Ενεργό έτος πρωτοκόλλησης".


Τι κάνω για να περάσω Πρωτόκολλα του έτους που τελείωσε (2021) και δεν πρόλαβα;


Στις ρυθμίσεις επιλέγω στο "Δικαιώματα χρηστών->Έλεγχοι & περιορισμοί κατά την καταχώριση" -> ΟΧΙ

Συνδέομαι σαν Διαχειριστής

Η φόρμα καταχώρισης - επεξεργασίας πρωτοκόλλου "κοκκινίζει".

Πλέον με όλα τα πεδία ξεκλείδωτα μπορώ να αλλάξω έτος, αριθμό Πρωτοκόλλου, ημερομηνία, ...


Να μη ξεχάσω να επαναφέρω τις ρυθμίσεις στις συνηθισμένες.



Καλή χρονιά με υγεία




Προς πληροφόρηση σας

χρειάστηκαν διορθώσεις στον κώδικα "για να κάνει αυτά που θέλουμε"
<