f4c8b235b99685c6a25e28339020bb9282c08be4
- Neues Projekt (Projekte-Seite): Repo-Name blieb nach dem ersten
Buchstaben der Subdomain stehen ("m" statt "musterfirma")
- Ticket "Projekt waehlen": archivierte Repos nach Flag ausblenden, nicht
nach status (reaktivierte fehlten, archivierte wurden angeboten)
- Projektliste: "Aktive Projekte" + neue Ansicht "Alle inkl. Archiv";
Liste wird auch nach einem Anlege-Fehler neu geladen
- Kundenauswahl: "Kein Kunde" entfernt Kunde und Ticket wirklich (mit
Rueckfrage); beim Kundenwechsel bleibt kein fremdes Ticket haengen
- Zuordnen-Assistent ueberschreibt eine vorhandene Website nicht mehr
- Neues Projekt am Ticket bekommt die Art Website
- Umlaute in Subdomains wie im Portal (mueller statt m-ller)
- Preview-Block nur mit gespeicherter Subdomain; archivierte Projekte
erst reaktivieren, bevor sie bearbeitet werden
- Repo-Import beim Aufklappen hoechstens einmal pro Minute
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WOMS – Ticketsystem von WEBklar
Internes Ticketsystem unter https://ticket.webklar.com: Tickets, Arbeitsblätter mit
Zeiterfassung, Kunden und Leads, Website-Projekte, Planboard und Finanzen (Rechnungen
schreiben und verwalten, Buchungen zuordnen; nur für Admins).
React/Vite im Browser, Daten in Appwrite (Projekt 6a1058610003c5a13a05,
Datenbank woms-database, API unter https://ticket.webklar.com/v1).
Entwickeln und live stellen
- Lokal starten: siehe LOCAL_DEV.md (Vite-Proxy +
.env.local). - Live ist der Branch
testim Gitea-RepoJUSN/tickte-system. Ein Push löst auf dem Server Build und Deploy aus. - Achtung: Der Webhook baut jeden gepushten Branch und stellt ihn live.
Feature-Branches deshalb nicht pushen; live geht es mit
git push origin <branch>:test.
Datenmodell (Kurzfassung)
Datum speichert WOMS als Text dd.mm.yyyy, Uhrzeiten als hhmm (z. B. 0930).
| Collection | Inhalt | Wichtige Felder |
|---|---|---|
workorders |
Tickets | woid (fortlaufend ab 10000), topic, details, status, priority, type (Webpage, Migration, Project, Akquise), serviceType, customerId/customerName, assignedTo/assignedName, requestedBy, startDate/startTime/endTime, deadline |
worksheets |
Arbeitsblätter | wsid (fortlaufend ab 100000), woid + workorderId, employeeId/employeeName, serviceType, oldStatus/newStatus, totalTime (Minuten), startDate/startTime/endDate/endTime, details, isComment, countsToPlan (Abo-Stunden) |
customers |
Kunden und Leads | code (Kundennummer), name/companyName, customerStatus (z. B. lead, customer, lost), archived, Rechnungsadresse, Portal-Zugang, invoiceNinjaClientId (nicht mehr genutzt, Daten bleiben) |
employees |
Mitarbeiter | userId (Appwrite-Benutzer), displayName, email, shortcode (Kürzel) |
websiteProjects |
Website-Projekte und Vorschauen | customerId (steuert, was der Kunde im Portal sieht), ticketId (Ziel der Git-Push-Arbeitsblätter), Subdomain, Repo |
leads, leadPipeline, leadSettings |
Lead-Automatik | Recherche-Ergebnisse, Pipeline-Schritte, Sucheinstellungen |
roadmaps, roadmapNodes |
alte Projektpläne | wird von WOMS nicht mehr gelesen (Plan mit Schritten, verknüpft mit einem Ticket) |
config |
alte Einstellungen | wird von WOMS nicht mehr gelesen (Prioritäten, alte Listen) |
Zusammenspiel mit anderen Systemen:
- Kundenportal (project.webklar.com): legt bei jedem Git-Push ein Arbeitsblatt an
(
employeeIdgitea,serviceTypeGIT, ohne Beginn). Die Zeit wird in WOMS nachgetragen, danach zählt sie als Arbeitszeit. Termine aus der Rechnungsanalyse landen am Akquise-Ticket des Kunden und erscheinen im Planboard. Kunden-, Mitarbeiter- und Projektverwaltung laufen über die Admin-API des Portals. - Finanzen-API des Portals (
/api/admin/finanzen): Übersicht, Rechnungen (Stripe), Buchungen (Bank), Einstellungen und Fixkosten. WOMS spricht sie mit dem Appwrite-JWT an und zeigt sie unter/finance(Einstellungen:/finance/einstellungen). - ticket-integrations (
/api/integrations): wird von WOMS nicht mehr genutzt (weder InvoiceNinja noch Paperless; Paperless selbst ist gestoppt).
Languages
JavaScript
94.7%
CSS
5.3%