Hallo Leute, schön, dass ihr noch da seid. Ich könnte mir vorstellen, dass, wenn ich eure Kenntnisse hätte und immer wieder einem Ignoranten wie mir Hinweise geben würde, die dieser (scheinbar) nicht annehmen will oder nicht versteht – möglicherweise hätte ich dann doch mal aufgegeben und diese Posts nicht mehr beachtet.
Ich habe in verschiedenen Zusammenhängen darauf hingewiesen, dass ich oft mit diesen Hinweisen und Vorschlägen schlichtweg überfordert bin. Es ist für mich blöd, dass ich das immer wieder sagen muss, aber bitte akzeptiert das doch auch mal. Versucht, die Teile, die ich zum Laufen gebracht habe und die man so lassen kann, so zu lassen und mir für die, die man dringend ändern muss, so zu helfen, dass ich nicht überfordert bin.
@Dennis89 Dieses Bild von meinem Weg nach Rom ist sehr schön. Ich fürchte, ich werde nicht fliegen lernen und muss weiter auf Schusters Rappen weiterreisen und hoffen, dass mich hin und wieder jemand mitnimmt wenn ich den Daumen raushalte.
Also zunächst:
noisefloor hat geschrieben: ↑Samstag 3. Februar 2024, 14:06
Wegwerfen + neu schreiben (=refractoring) ist _nichts_ schlimmes und nichts verwerfliches. Das ist eher normal, wenn man größere Applikationen schreibt.
… neu schreiben ist für mich nicht drin. Ich habe ebenfalls schon mal darauf hingewiesen, dass dieser Rechentrainer in anderer Form schon existiert und (für mich) fertig ist. (ich ergänze den Link dazu in meinem Profil). Mit meinem ersten Programm habe ich 2006 angefangen und in beide Projekte bisher schätzungsweise fast 15 000 Stunden Arbeit reingesteckt. Einige der Codeteile, die euch nicht so gefallen, habe ich von dieser ersten Version übernommen. Ich will erreichen, dass die Aufgaben in diesen beiden Versionen etwa deckungsgleich sind.
Auch wenn ich in der Lage wäre, meinen Code komplett neu zu schreiben würde, fürchte ich, nichts besseres rauskommen.
sparrow hat geschrieben: ↑Samstag 3. Februar 2024, 10:18
Falls in der Zwischenzeit mehr Verständnis für das Schreiben von Code und das Benennen von Variablen vorhanden ist …
Ich fürchte: Ersteres nicht wirklich (siehe oben) und beim Zweiten habe ich zumindest nach euren Hinweisen viel geändert, ich wollte aber keine Änderungen, die rückwirkend auch Auswirkungen auf meine Datenbank haben.
noisefloor hat geschrieben: ↑Samstag 3. Februar 2024, 14:06
Von mir persönlich (als Hobbyprogrammierer) kann ich sagen, dass meine Django-Skills mit jedem Projekt deutlich besser geworden sind. Was halt schon hilft ist, wenn man verschiedene Projekte macht und dabei lernt und halt alles gelernte beim nächsten Projekt anwendet.
Ich habe tatsächlich noch ein zweites Projekt im Kopf (und als Grundgerüst als Makro in einer Tabellenkalkulation (wie der „alte“ Rechentrainer) schon vorliegen). Die Konzeption dieses „Physiktrainers“ ist eine vollkommen andere. Aber ob ich vor meinem Ableben oder der verstärkten Demenz da noch hinkomme … Wenn ich das mittels Django realisiere, werde ich vielleicht auch dazugelernt haben.
Tja, und das ist zwischenzeitlich der Kernpunkt dieses Posts:
noisefloor hat geschrieben: ↑Samstag 3. Februar 2024, 14:06
- aber dann sollte man tunlichst einen Admin kennen, mit dem man zusammen arbeitet, dem man vertraut und der sich dann darum kümmert.
… wie finde ich so jemanden – wenn nicht hier?
Ihr habt mir immer geduldig geholfen - gibt es auch jemanden, der bereit ist sich dies anzutun?
Zurück zu meinem verpatzen Auftritt in Github:
In Github ist ja wohl gespiegelt, was im Ordner meines VSCodes liegt. Muss ich in Github händisch die Inhalte wieder rausnehmen, die da nicht reingehören – gitignore macht das ja anscheinend nicht?
Ich zähle mal auf: die Datenbank, --pycache__ (von der ich natürlich auch nicht weiß was sie macht, die aber in meinem gitignore steht) und die doppelten static Ordner.
… lösche ich die ersten beiden jetzt händisch in github oder wie sorge ich dafür, dass die nicht beim nächsten Push wieder auftauchen?
So, noch ein paar Einzelheiten:
noisefloor hat geschrieben: ↑Samstag 3. Februar 2024, 09:30
* In der einen views.py waren ziemlich viele Hilfsfunktionen drin, die (wahrscheinlich) nicht an eine Route gebunden sind -> zur besseren Strukturierung in eine eigene Datei auslagern.
Wie macht man das? Lege ich einfach einen Ordner „hilfsfunktionen.py“ an und importiere die Funktionen von da? (Ich hatte das vor einiger Zeit schon mal angefragt, da bekam ich (soweit ich mich erinnere) den Hinweis, da könne ich mich später drum kümmern, wenn mein Code umfangreicher geworden ist.
noisefloor hat geschrieben: ↑Samstag 3. Februar 2024, 09:30
* Ich habe die Struktur nicht verstanden (bzw. habe auch nicht in die urls.py reingeschaut. Wie viele Apps hast du in deinem Projekt? Weil es gibt ja zwei Verzeichnisse, core und eines für die Nutzer, was mich verwirrt hat.
In diesem Zusammenhang sind auch die zwei Apps entstanden. Irgenwann wurde der Code in meinem views.py und url.py unübersichtlich, da habe ich teile ausgelagert. Die eine „core“ beinhaltet alles zur Erstellung der Aufgaben und die verschiedenen Darstellungen der Arbeit, die zweite „accounts“ beinhaltet die ganze Organisation inklusive der Optionen für Lehrkräfte.
noisefloor hat geschrieben: ↑Samstag 3. Februar 2024, 09:30
* Warum gibt es eine Tabelle für gelöschte Accounts? Inaktive oder gelöscht Accounts markiert man normalerweise für ein Flag in der Accountstabelle.
Einige User vergessen ihre Anmeldenamen, Passworte und auch Emailadressen und haben bis zu 8 Accounts. Ich habe eine Funktion erstellt mittels der die Lehrkräfte diese Accounts zusammenlegen und auch löschen können. Da ich etwas unsicher war, was da passiert, habe ich dort protokolliert was gemacht wurde. Die Tabelle kann ich auch bei Gelegenheit wieder löschen.
noisefloor hat geschrieben: ↑Samstag 3. Februar 2024, 09:30
* Die hinterlegten Schulformen können nicht das SK1 System in Rheinland-Pfalz abbilden - da fehlt die Realschule+.
Da irrst du – die ist drin - also die Realschule - gibt es etwa auch eine Realschule+? Allerdings entsteht in diesem Zusammenhang ein viel größeres Problem. Ich habe hinterlegt, in welchem Schuljahr und welcher Schulwoche welches Thema bearbeitet worden sein müsste. Dabei habe ich mich am Lehrplan meiner Schule, einer IGS (muss ich diese Abkürzung auch ausschreiben?) orientiert. Wenn ich das auf verschiedene Bundesländer, Schulformen oder auch individuell an einzelne Schulen anpassen muss, wird das schwierig.
noisefloor hat geschrieben: ↑Samstag 3. Februar 2024, 09:30
* In den Modellen ist an ein paar Stellen `blank=True`, wo es gar nicht sein kann / darf. AFAIR bei einem Fremdschlüssel. Schlüssel können nie leer sein.
Wenigstens da habe ich tatsächlich mal was dazugelernt. Das ist entstanden, als ich mein Datenmodel immer mal wieder geändert habe und Fehlermeldungen bekommen habe, wenn da Eintragungen gefehlt haben. Das kann ich nochmal überarbeiten.
noisefloor hat geschrieben: ↑Samstag 3. Februar 2024, 14:06
Und ja, dein Ansatz für ein "richtiges" produktives Deployment ist in der Tat ein bisschen blauäugig. ….
Wenn deine App z.Zt. wirklich mit dem Dev-Server von Django läuft, dann ist das zwar ein funktionierendes, aber halt auch falsches Deployment.
Auweh, das müsst ihr mir genauer erklären. Ist das die Datei rt-dev@.service. Die ist da drin seit @whitie mir das Grundgerüst zu diesem Projekt erstellt hat. Was muss ich da wie ändern?
Es wäre wunderbar, wenn ihr mich weiter coachen könntet und dabei meine eingeschränkten Fähigkeiten berücksichtigen würdet (ich hoffe, ihr werdet dabei beim Haareraufen nicht zuviele der selbigen verlieren). Ansonsten bliebe mir ja wohl nichts anderes übrig als mein Projekt aus dem Netz zu nehmen und meine Briefmarkensammlung im Keller zu suchen.