Fix the edit form so Save persists stage changes
Changing an application's stage and pressing Save closed the form without saving the stage: JobsDatabase::updateJob() deliberately skips the stage column so every move lands in stage_history, but JobEditModel::save() never followed up with setStage(). It now does, as the CLI's update command always has. Also: - Validate that company and title are non-empty and say so, instead of saving a blank field - Always set lastError on failure, clear it on the next attempt, and bind the page's error message to it - Reload the form's values when jobsModel is assigned, since QML does not guarantee it is set before editingJobId - Bind the salary spin boxes to the model and write back only on user edits; guard the notes field the same way - Add jobeditmodeltest covering load order, edits, stage history, salaries round-tripping, adding, and validation errors Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01BxDf7HqD1xPnsZP8wt3NTk
This commit is contained in:
@@ -74,10 +74,12 @@ Q_SIGNALS:
|
||||
|
||||
private:
|
||||
void resetValues();
|
||||
void setLastError(const QString &error);
|
||||
|
||||
JobsModel *m_jobsModel = nullptr;
|
||||
int m_editingJobId = -1;
|
||||
QHash<QString, QVariant> m_values;
|
||||
QString m_lastError;
|
||||
QString m_loadedStage; ///< Stage as loaded from the database, to detect stage changes on save.
|
||||
QList<JobFieldCatalog::Field> m_fields;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user