Zeiterfassung
Eingetragen von knork (76)
am 03.04.2023 - 08:04 Uhr in
am 03.04.2023 - 08:04 Uhr in
Hallo Leute,
ich habe die Aufgabe eine Zeiterfassung mit Drupal 9 zu realisieren. Grundsätzlich soll das ganze über Zeitstempel funktionieren. Ich wollte also zwei Inhaltstypen machen, "kommen" und "gehen". Jeder Inhalt hat ja ein "geschrieben am" und das würde ich gerne per Views in einer tabelle gegenüberstellen damit die Zeiten ablesbar sind. Hab mir auch schon überlegt ein extra Feld zu benutzen, jedoch bleibt das Problem das gleiche. Wäre es auch möglich mit den Feldern zu rechnen, sodass ich die Gesamtstunden pro Tag ablesen könnte?
Ich wäre für Hilfe sehr Dankbar, da ich nicht mehr weiter komme...
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich hab mal ein wenig
am 06.04.2023 - 21:14 Uhr
Ich hab mal ein wenig rumprobiert:
Je einen Inhaltstyp Anfang und Ende Zeiterfassung, alle Felder entfernen und mit Automatic Entity Label und Token den Titel automatisch erzeugen lassen und das Titelfeld ausblenden. Aus Formularanzeige und Anzeige alles entfernen.
Z.B.
[current-user:display-name]-[current-date:long]
für Name und Zeit. Den Benutzer nur für Erstellung Rechte geben, nicht für Löschen oder Ändern.Dann je einen View für Anfang und Endzeit erstellen.
Felder: Inhalt: Geschrieben am
Filterkriterien: Inhalt: Veröffentlicht (= Ja) und Inhalt: Inhaltstyp (= Anfang / Ende Zeiterfassung)
Kontextfilter: Inhalt: Geschrieben von, Einstellungen Vorgabewert bereitstellen, Typ Abfrageparameter
Dann Views Field View installieren und noch einen View erstellen.
Format: Tabelle
Felder:
Inhalt: Geschrieben von
Global: Ansicht , das kommt von dem Views Field View Modul, damit fügt man einen View in den anderen ein.
Davon 2 machen und jeweils einen der vorherigen Views einbinden. Bei Kontextfilter das Feld des anderen Views mit der Zeit auswählen. Unter Ersetzungsmuster werden die verfügbaren angezeigt.
Mit einem hervorgehobenen Filter kann nach Benutzer gefiltert werden.
Danke für die ausführliche
am 08.04.2023 - 15:16 Uhr
Danke für die ausführliche und wirklich zielführende Antwort. Genau so soll das aussehen. Ich werd das nach Ostern direkt ausprobieren und ne Rückmeldung geben !????
mein Ergebnis sieht jetzt so
am 11.04.2023 - 16:29 Uhr
mein Ergebnis sieht jetzt so aus wie in Bild 1, jedoch nur wenn ich in Anfang und Ende den Contextfilter ganz heraus nehme. Habe den Filter unter erweitert gesetzt wie auf Bild 2
Im Kontextfilter der View lässt sich das datum nicht auswählen, siehe Bild 3
So, ich habs jetzt beinahe. jedoch werden mir die ergebnisse doppelt angezeigt.
knork schrieb So, ich habs
am 11.04.2023 - 16:53 Uhr
So, ich habs jetzt beinahe. jedoch werden mir die ergebnisse doppelt angezeigt.
Welche Filter hast du bei dem 3. View? Ich hab da
Inhalt: Veröffentlicht (= Ja)
Inhalt: Inhaltstyp (= Testtyp)
Inhalt: Zeitspanne (hervorgehoben)
Also von der Zeitspanne nur den Anfang, wahlweise würde auch nur das Ende genauso funktionieren.
Ich hab’s es eben
am 11.04.2023 - 17:52 Uhr
Ich hab’s es eben hinbekommen. Mein Fehler war das ich bei Inahltstyp noch kommen und gehen drin hatte. Daher hatte ich immer zwei Einträge. Außerdem hatte ich die einzelnen Views auch als Tabelle statt als unformatierter Liste.
Also das passt jetzt. Jetzt hab ich nur noch zwei Sachen, vielleicht kannst du mir da auch helfen ????
Meine Benutzer würde ich gern beim filtern aus einer benutzerliste wählen. Das geht zur zeit nur mit Auto vervollständigen.
Und das zweite, das werd ich morgen aber auch erstmal selbst testen, ich möchte beim komme. -10 und beim Gehen +10 Minuten rechnen. Bin nicht sicher ob das beim Zeitstempel geht oder ob ich dazu das ganze mit eigenem Datum Feld machen muss. Das bekomme ich mit deiner Methode wahrscheinlich auch hin.
Kann man eigentlich einen kommen Button machen, um das als 1Klick Erstellung zu machen ? Fragen über fragen ????????????
knork schriebMeine Benutzer
am 11.04.2023 - 18:39 Uhr
Meine Benutzer würde ich gern beim filtern aus einer benutzerliste wählen. Das geht zur zeit nur mit Auto vervollständigen.
Wenn es wenige sind, geht es mit gruppierten Filtern, man muss halt für jeden eine Optionsmöglichkeit eingeben. Bei vielen ist das aber hoher Aufwand, alternativ gibt es das Modul Views field select filter
Und zum 1 Klick-Button, so wie im Bild sieht das bei mir aus.
Das mit dem Modul probiere
am 11.04.2023 - 19:15 Uhr
Das mit dem Modul probiere ich morgen direkt aus. Es sind um die 100 User.
Das mit dem Button sieht gut aus. Wie hast du das gemacht ?
Wie schon geschrieben:Alle
am 11.04.2023 - 19:50 Uhr
Wie schon geschrieben:
Alle Felder entfernen aus den Inhaltstypen, mit Automatic Entity Label und Token den Titel automatisch erzeugen lassen und das Titelfeld ausblenden.
Aus Formularanzeige und Anzeige alles entfernen.
Für den Titel mit Automatic Entity Label zum Beispiel [current-user:display-name]-[current-date:long] für Name und Zeit verwenden.
Dem Benutzer nur für Erstellung Rechte geben, nicht für Löschen oder Ändern.
Vorschau und Autoreninfo deaktivieren.
Ansonsten ist das die ganz normale node/add Seite
also ich muss nochmal fragen.
am 13.04.2023 - 15:10 Uhr
also ich muss nochmal fragen. ich bekomme die einträge doch noch doppelt angezeigt in der View3.
hier dargestellt soll erstmal eine view für den benutzer erstellt werden. in einer weiteren will ich dann alle nutzer anzeigen lassen gruppiert nach monaten und gefiltert durch benutzername. das mache ich aber später irgendwie mit dem views modul das du genannt hast.
in view 1 und 2 habe ich den kontexfilter nicht gesetzt. wenn ich das tue bekomme ich keine ergebnisse. ohne, bekomme ich 3 einträge korrekt angezeigt, so wie es sein soll. Ich verstehe den kontexfilter hier auch nicht.
Hab im anhang die view3, das ergebnis(2x3 statt 1x3 einträge) und die view1 angehangen. vielleich kannst du mir da nochmal helfen.
Ist das Feld
am 13.04.2023 - 20:48 Uhr
Ist das Feld content:Kommenzeitpunkt in View 1 ein Feld das im Inhaltstyp angelegt wurde? Ich habe da Inhalt:geschrieben am, also in deinem englischen View dann wohl Content:authored on. Ich dachte der Benutzer soll da nur einfach "anstempeln" können und nicht selber die Zeit eintragen? Wie sieht denn der Content Type Kommen aus?
Im Anhang habe ich mal meine View 1 und den Kontextfilter davon angehängt.
Und dann in View 3 das Views Feld folgendermaßen anlegen:
Feld anlegen, View/Ansicht auswählen und unten auf Felder anlegen und konfigurieren klicken - siehe Bild 1 Views.
Dann aus dem Drop-down den View 1 bzw. 2 auswählen. Siehe Bild 2
Bei Felder hinzufügen NICHTS auswählen und abbrechen drücken. Bild 3
Dann das Feld in der Übersicht nochmal anklicken zum Bearbeiten und nochmal den View 1 bzw. 2 auswählen. So wie in Bild 2.
Dann den Kontextfilter eintragen mit Inhalt:geschrieben von (raw), wie in Bild 4
Dann sollte es klappen.
Danke :-) Ich kann am
am 14.04.2023 - 11:18 Uhr
Danke :-)
Ich kann am Dienstag erst wieder am System arbeiten und dann probiere ich das alles Schritt für Schritt aus.
Ja der Typ kommen hat das feld kommenzeitpunkt vom typ Date. Das musste ich machen weil es die vorhabe gibt das ich von der aktuellen zeit 10 Minuten abziehen muss. Das bekomm ich mit geschrieben von nicht hin. Das Feld lasse ich bei der Eingabe ausgeblendet. Das ist eigentlich alles. Dort ist bei Eingabe dann nur ein Speicher button. Wenn es deutlich einfacherer über geschrieben von geht, dann werd ich das ändern.