Skip to content

Qxevent#1069

Draft
fvacek wants to merge 55 commits into
mainfrom
qxevent
Draft

Qxevent#1069
fvacek wants to merge 55 commits into
mainfrom
qxevent

Conversation

@fvacek

@fvacek fvacek commented Nov 30, 2025

Copy link
Copy Markdown
Collaborator

No description provided.

@fvacek fvacek changed the base branch from qe3 to main December 25, 2025 19:18
@fvacek fvacek marked this pull request as draft December 25, 2025 21:17
@fvacek fvacek self-assigned this Dec 25, 2025
@lukaskett

Copy link
Copy Markdown
Collaborator

Ahoj, kdy prosím plánuješ nasadit?

@fvacek

fvacek commented Apr 6, 2026

Copy link
Copy Markdown
Collaborator Author

Ahoj, kdy prosím plánuješ nasadit?

Ahoj, myslel jsem po vanocich :) Jsem ted zasekanej v praci a nemam na QE vubec cas. :(

25.04.2026 poradme, rad bych tam, ale vidim to blede.

@lukaskett

Copy link
Copy Markdown
Collaborator

Ahoj, myslel jsem po vanocich :) Jsem ted zasekanej v praci a nemam na QE vubec cas. :(

25.04.2026 poradme, rad bych tam, ale vidim to blede.

Co je potřeba ještě dodělat? Mně jde hlavně o funkcionalitu pro OFeed službu, která tohle:

  • 100% jistotu odchycení změny
  • získání jen změněných dat a nikoliv id závodníka

potřebuje jako prase drbání 😀

fvacek added 13 commits June 8, 2026 21:03
Also add recChng signal forwarding to RPC node, check QSqlQuery::prepare
and throw on failure, and rename handleQxRecChng to applyQxRecChng
across
models and widgets
Add foreign_table column to qxchanges and narrow the UNIQUE index WHERE
clause to include foreign_table='runs' so pending LateEntry uniqueness
applies per run.

Refactor LateEntry to use a variant LateEntryId (RunId/ClassId), parse
ids from variant maps, normalize keys (firstname/lastname/siid), and
introduce LateEntryStatus and helper conversion. Update LateEntryDialog
API and UI: accept status, extract run id from the variant id, remove
lock-number UI and related "Locked"/"Null" filters, and streamline
resolve/close and button enable logic.
Constructor now accepts a status_message; UI adds edStatusMessage and a
Send button which calls updateQxChangeMessage to persist the message.
Implement loadClassName() and classId() to handle ClassId foreign ids
and
use the class id for inserts. Rename LateEntryId to LateEntryForeignId
and add a foreign_table column in the model. Persist status_message when
updating qxchanges and adjust related logic and UI layout.
Make possibleStartTimesMs a static method on CompetitorDocument and
replace the widget-local implementation with a call to it. Add
start_time
fields to LateEntry/OrigRunRecord and update late-entry dialog (pass
stage id, UI tweaks, size, readonly original name). Add isExportDatabase
setting and only set RPC device options when enabled. Add
RunsWidget::showEditCompetitorDialog helper.
LateEntryDialog: handle empty start time, add duplicate-registration
and duplicate-name checks and call them on init; reset start-time style
when group is unchecked.
QxEventService: extract eventctl SHV path into method and use it.
QxEventServiceWidget/UI: add SHV broker group with default-url radios,
only set connection options when exporting DB, add helper to set URL.
RunsTableModel: ignore Insert rec changes to avoid applying filtered
inserts before they are relevant.
@fvacek

fvacek commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator Author

@lukaskett koukam, ze jsi uz neco testoval, ale lokalni databaze toho zatim moc nedela, pripojim tam testovaci botas

@fvacek fvacek force-pushed the qxevent branch 2 times, most recently from 55ad604 to aee758c Compare July 7, 2026 16:10
@lukaskett

Copy link
Copy Markdown
Collaborator

@lukaskett koukam, ze jsi uz neco testoval, ale lokalni databaze toho zatim moc nedela, pripojim tam testovaci botas

Snažil jsem se pochopit jak to máš udělané a taky jaký je rozdíl mezi SHV a MQTT. Vypadá to dost šikovně. Chápu dobře, že nějak nekontroluješ právo editace a prostě umožňuješ editaci všeho všem a jediná podmínka je, že musí být uživatel přihlášený (přes Google pěkně jednoduchý 🙂 )?

Ještě se chci podívat jak se propisuje do QE a jak je tam udělané potvrzování/zamítnutí/poslání komentáře.

@fvacek

fvacek commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator Author

@lukaskett koukam, ze jsi uz neco testoval, ale lokalni databaze toho zatim moc nedela, pripojim tam testovaci botas

Snažil jsem se pochopit jak to máš udělané a taky jaký je rozdíl mezi SHV a MQTT. Vypadá to dost šikovně. Chápu dobře, že nějak nekontroluješ právo editace a prostě umožňuješ editaci všeho všem a jediná podmínka je, že musí být uživatel přihlášený (přes Google pěkně jednoduchý 🙂 )?

Ještě se chci podívat jak se propisuje do QE a jak je tam udělané potvrzování/zamítnutí/poslání komentáře.

SHV ma oproti MQTT vyhodu, ze krome subscribe ma i RPC, pouzivame to v praci na vsechno, tak jsem po tom sahl i zde, navic je to v rustu, kterej jsem si posledni dobou dost oblibil.

Pokud nekdo pozaduje zmenu v raku ve startovce, zamkne si ho pro sebe na jeho google email a je jeho, dokud se ten pozadavek nevyresi. Dva zavodnici nemohou pozadovat soucasne zmenu v jednom radku.

image

V QE mi tento pozadavek vyskoci pres QxRecChng (to je ta nova nahrada DbEventu)

REC-CHNG table: qxchanges op: Insert id: 50 record: data -> {"LateEntry":{"id":{"RunId":5113},"siid":1234}}
data_type -> LateEntry
foreign_id -> 5113
foreign_table -> runs
stage_id -> 1
status -> Pending
user_id -> fanda.vacek@gmail.com
image image

kdyz dam Accept, QE provede zmeny a te se poislou jako QxRecChng notifikace do web aplikace

REC-CHNG table: qxchanges op: Update id: 50 
status -> Accepted
status_message -> Ahoj
image

a kruh se uzavre :)

Chtel bych to vyzkouset na HSH

fvacek added 7 commits July 8, 2026 20:36
Add 'paid' to LateEntry and parse it from change data. Show paid
status in LateEntryDialog (lblPaid) and color rows in the late
entries table based on paid/status. Replace local LateEntryStatus with
QxChangeStatus and provide qxChangeStatusFromString for unified parsing.
Introduce changeEventEntryToStageEntry and m_setIsRunning to update an
existing competitor run instead of inserting duplicates.
Emit editCompetitor when user chooses Accept and Edit; save the
competitor id after resolving changes; connect the dialog to open the
competitor edit dialog from QxLateEntriesWidget. Comment out unused
EventChange struct in runchange.h.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants