yannikschaelte / miniplaner Goto Github PK
View Code? Open in Web Editor NEWSoftware zum automatischen Erstellen von Messdienerplänen.
Home Page: https://yannikschaelte.github.io/MiniPlaner
License: GNU Lesser General Public License v3.0
Software zum automatischen Erstellen von Messdienerplänen.
Home Page: https://yannikschaelte.github.io/MiniPlaner
License: GNU Lesser General Public License v3.0
Besonders in der Ansicht "Minis".
Sortieren nach Alter, Geburtstag (wirklich der Tag, nicht das Jahr -> für Geburtstagsgeschenke), Geburtsjahr, Name und Vorname.
Export in der dann gegebenen Reihenfolge.
Z.B. "Kann nicht Donnerstags", wenn Donnerstags als Fehlzeit eingetragen ist.
Momentan tragen wir den Pfarrer in das Feld für den Ort ein, es wäre sinnvoll, ein dafür ausgelegtes Feld zu haben.
Did you think about choosing a license?
You don't have to, but right now the code is under exclusive copyright, so nobody except you can use it.
We should implement the XDG Desktop Entry specification to integrate into application menus of common application environments on Linux.
Einsätze über das Jahr kalkulieren statt nur pro Plan.
Folgende Vorteile:
-Fairere Verteilung der Aufgaben über das Jahr hinweg (z.B. wenn jemand 6 Wochen im Sommerurlaub war, würde das dann im restlichen Jahr ausgeglichen werden)
-Ausgabe: "Wer hat am häufigsten gedient?"
Eintrittsdatum als zusätzliches Feld der Messdienerdaten wäre gut. (Z.B. um Erfahrung einschätzen zu können, oder um Jubilare zu ehren.)
Currently, all properties shown in the "About" panel are hard coded like this:
MiniPlaner/src/view/AboutPanel.cpp
Lines 52 to 54 in 01b5ccd
I am going to have a look at soft coding those entries once we have a working build system in place.
Since develop
is the branch reflects a state with the latest delivered development changes, it should be the default branch. That way it is the default target for comparisons and Pull requests.
It is done this way in nvie/gitflow, which should be a good reference in this regard.
What do you think?
At least consistently add module, class, function docstrings.
Gewähltes Layout (z.B. ob kommasepariert oder in Spalten, Anzahl der Spalten, ...) im Plan speichern, sodass bei erneuten Planaufruf dieses Layout wieder geladen wird.
I'll try to set up CI via GitHub actions now that #6 is merged.
Frei vergebbare Nummer, um z.B. eine Ausgabe aller Minis nach/entlang einer Route im Ort zum Austragen von Informationszetteln u.Ä. zu ermöglichen.
Macht aber nur in Kombination mit #18 Sinn.
Ich führe mich hier auf wie bei "Wünsch dir was" :)
Aber ein Logo in der Ecke des Plans einfügen zu können wäre nice...
Hallo @yannikschaelte , ich weiß, dass du momentan nicht weiter entwickelst, habe aber trotzdem noch Ideen, die ich hier anbringen will, damit sie nicht verloren gehen für den Fall, dass vlt. in Zukunft doch an diesem Wunderbaren Tool weitergearbeitet wird :)
Meine Idee:
Unterhalb des Plans wird ein Feld auf voller Breite eingefügt, in welchem Informationen und Kommentare wie z.B. Gruppenstunden, Jugendgottesdienste oder Helfereinsätze bei Festen vermerkt werden können.
Zur Zeit füge ich das immer händisch in Excel hinzu.
Document steps needed for deployment (e.g. version update, distributable creation).
In addition, automatic deployment e.g. via travis or github actions might be of interest.
Using relative paths for configuration is a problem when installing the application, which is the goal when creating packages. If one calls the binary from different folders, different configurations are being used. This can be reproduced on Windows via the command line as well.
I think, we should aim for using the operating systems respective config path, if no configuration is present in the current directory (for backwards compatibility). There are config and data locations for applications available: soc/directories-jvm#basedirectories
On Linux everything works fine, but on Windows when opening a plan, the following messages appear:
11:02:56: can't open file '/2015-11-01_2016-01-01/dienste.dat' (error 3: the system cannot find the path specified.)
11:02:56: can't open file '/2015-11-01_2016-01-01/minis.dat' (error 3: the system cannot find the path specified.)
11:02:56: can't open file '/2015-11-01_2016-01-01/mgruppen.dat' (error 3: the system cannot find the path specified.)
11:02:56: can't open file '/2015-11-01_2016-01-01/fehlzeiten.dat' (error 3: the system cannot find the path specified.)
11:02:56: can't open file '/2015-11-01_2016-01-01/settings.dat' (error 3: the system cannot find the path specified.)
11:02:56: can't open file '/2015-11-01_2016-01-01/termine.dat' (error 3: the system cannot find the path specified.)
Currently, the icon in AboutPanel
can't be loaded from a distribution built with meson, as it is not installed:
MiniPlaner/src/view/AboutPanel.cpp
Lines 22 to 23 in 01b5ccd
We should either install the icon and adjust the path if necessary or use an XPM like for the window icon:
MiniPlaner/src/view/MainFrame.cpp
Line 25 in 01b5ccd
Lines 1 to 2 in 01b5ccd
Momentan gebe ich den Plan als .csv aus, öffne ihn in Excel, füge die Kommentare an (siehe #14 ) und gebe dann als PDF aus.
Es wäre super, wenn das alles innerhalb von MiniPlaner geschehen könnte.
I think we should separate the user experience from the developer experience.
Currently, yannikschaelte.github.io/MiniPlaner is generated from master
. We can use a gh-pages
branch for the website [1] and generate the website via an index.md
file [2].
That way we can rewrite README.md
to house relevant information about building the program, which are irrelevant to the end user and preferably written in English.
Furthermore, we should exclude binaries from the source tree. Things currently listed in "Download" and "Beispiel" in README.md
should be added to the corresponding release: MiniPlaner/v2.0.4
@yannikschaelte, what do you think?
[1] Configuring a publishing source for your GitHub Pages site - GitHub Help
[2] Creating a GitHub Pages site - GitHub Help
When saving plans, the following error message pops up, unable to progress any further:
ASSERT INFO:
/usr/include/wx-3.0/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type
BACKTRACE:
[1] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[2] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[3] wxEvtHandler::TryHereOnly(wxEvent&)
[4] wxEvtHandler::ProcessEventLocally(wxEvent&)
[5] wxEvtHandler::ProcessEvent(wxEvent&)
[6] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[7] wxWindowBase::Close(bool)
[8] g_closure_invoke
[9] g_signal_emit_valist
[10] g_signal_emit
[11] gtk_main_do_event
[12] g_main_context_dispatch
[13] g_main_loop_run
[14] gtk_main
[15] wxGUIEventLoop::DoRun()
[16] wxEventLoopBase::Run()
[17] wxAppConsoleBase::MainLoop()
[18] wxEntry(int&, wchar_t**)
[19] __libc_start_main
Unterschiedliche Gottesdienste dauern verschieden lang (Hochfest, Osternacht,...)
Das Feld gibt die Möglichkeit, dies abzubilden.
Wir drucken über die in MiniPlaner verwaltete Liste viele Zettel (Anmeldungen, Informationen, etc.) Einige würden es aber vorziehen nur E-Mails zu erhalten. Dies würde dies ermöglichen:
Feld einführen, ob ein Messdiener Informationen und den Messdienerplan nur per E-Mail erhalten möchte (am besten einfach einen Boolean true/false), sodass (über Issue #19) Zettel dann wirklich auch nur für Leute gedruckt werden, die welche haben möchten.
Die Möglichkeit geben, dass die benötigten Daten nicht zwangsläufig im Installationsverzeichnis gespeichert werden, sondern dass der Speicherort frei gewählt werden kann.
Aus MiniPlaner über einen Button den Plan direkt als Anhang an einer E-Mail an die sowieso schon in MiniPlaner verwalteten E-Mail-Adressen senden. Dafür wäre die PDF-Funktion aus #15 notwendige Grundlage.
Duplikate E-Mail-Adressen (z.B. Geschwister) vorher filtern, sodass die Mails nicht mehrfach ankommen.
Besonders in der Ansicht "Minis".
Filtern nach "älter als n Jahre alt", "jünger als n", Wohnort, Dienste
Export in der dann gegebenen Reihenfolge.
Hi guys,
I would like to use this to explain some of the problems I am currently having with the project. Please do not consider this to be any kind of attack or something, it's just my honest opinion...
Used Language
I have only a very very rough understanding of C++ and my attempts to understand it have been only moderately successful so far.
I'm writing an exam in/about Java in a few weeks and I'm just confusing myself with C++ right now.
This is most definately a personal issue of mine and in itself no big problem.
GUI
The graphical user interface: I'm honestly not a big fan of the standard elements used by WxWidgets . WxWidgets is old and confusing in my eyes. It doesn't allow (at least for me) to design the software the way I would like to use it: modern, lean and clear. Nevertheless, I am aware of what the purpose of this is.
"Legacy issues"
I really thank Yannick for all that MiniPlaner can do. Nevertheless, there are some corners that are not round and which in my opinion can still take some work. See especially 4). Again, on its own no big deal. But to implement new functions and to stay compatible to old datasets appears difficult to me.
Multiple users
In my community, many (about 20) people would need to have regular access to the software so that we can use it widely and effectively. And this is only from the servers. I almost think it would be better to have a holistic solution for everyone: The parish office creates an appointment and automatically schedules pastor, organist, lector, sacristan, communion helper and servers. Or is that too far-fetched?
What my plan is? My big idea? No clue! While jogging a few days ago I actually thought about whether it wouldn't be more sensible to write a kind of "MiniPlaner" 2.0 in Java or even web-based. Or the existing project would have to be radically overhauled over time. Because, once again, the individual problems could be solved by us...
I know that you have invested a lot of your time and heart and soul in the last few weeks here and I would be happy to hear your honest opinion!
When starting the program compiled with #6, the program fails to load it's icon:
13:10:39: can't open file 'aaa' (error 2: No such file or directory)
13:10:39: Failed to load image from file "aaa".
aaa
is being used here: MainFrame.cpp#L24
The repository seems to be missing the MiniPlaner.rc
referenced in makefile#L30, but I am not sure yet how that would work out on Linux.
When pressing certain buttons (e.g. Plans
) in the main window, the assertion in wxWidgets/window.cpp#L2857 fails:
ASSERT INFO:
./src/gtk/window.cpp(2857): assert "m_widget" failed in DoSetSize(): invalid window
BACKTRACE:
[1] wxWindow::DoSetSize(int, int, int, int, int)
[2] wxBoxSizer::RecalcSizes()
[3] wxSizer::Layout()
[4] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
[5] wxBoxSizer::RecalcSizes()
[6] wxSizer::Layout()
[7] wxWindowBase::Layout()
[8] wxWindowBase::InternalOnSize(wxSizeEvent&)
[9] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[10] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[11] wxEvtHandler::TryHereOnly(wxEvent&)
[12] wxEvtHandler::ProcessEventLocally(wxEvent&)
[13] wxEvtHandler::ProcessEvent(wxEvent&)
[14] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[15] wxWindow::DoSetSize(int, int, int, int, int)
[16] wxBoxSizer::RecalcSizes()
[17] wxSizer::Layout()
[18] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[19] wxEvtHandler::SearchDynamicEventTable(wxEvent&)
[20] wxEvtHandler::TryHereOnly(wxEvent&)
[21] wxEvtHandler::ProcessEventLocally(wxEvent&)
[22] wxEvtHandler::ProcessEvent(wxEvent&)
[23] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[24] g_closure_invoke
[25] g_signal_emit_valist
[26] g_signal_emit
[27] gtk_main_do_event
[28] g_main_context_dispatch
[29] g_main_loop_run
[30] gtk_main
[31] wxGUIEventLoop::DoRun()
[32] wxEventLoopBase::Run()
[33] wxAppConsoleBase::MainLoop()
[34] wxEntry(int&, wchar_t**)
[35] __libc_start_main
This project's code is not to be found in the back trace, so we might need to play around with the configuration of the window object to resolve this issue.
Option in den Einstellungen oder ein Button, um vergangene Fehlzeiten ausblenden zu können.
Dies würde der Übersichtlichkeit helfen.
Derzeit nur Textfeld implementiert (mit Hilfen). Eine gute Alternative wäre eine Eingabe über ein Kalender-Popup (ggf. direkt mit Zeitraum-Option, z.B. für Urlaub).
The program uses custom colors (hand-picked for windows) for several elements rendering the look and feel very inconsistent with the Adwaita theme:
It's even worse with the Adwaita dark theme:
It worked well removing the custom colors on some of them but I'll have to find all of them and verify that there are no regressions on Windows.
Manche Messdiener "sollen" z.B. höchstens 2 mal pro Monat eingesetzt werden. Vielleicht kann man ein solches Kriterium mit berücksichtigen.
Currently, only the binary is installed via the build system. The binary expects the PDF at runtime, so we should include it as well.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.