From b554c96720c0a5cbcdfcc0d8ee2bb1f968a3afc3 Mon Sep 17 00:00:00 2001 From: Kevin Whitaker Date: Wed, 10 Jun 2020 11:33:24 -0400 Subject: [PATCH] Fix date storage to be iso string. Save and display date as appropriate. --- src/contents/ui/main.qml | 5 +++-- src/db/sqlservicerecord.cpp | 4 ++-- src/db/sqlservicerecord.h | 2 +- src/main.cpp | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/contents/ui/main.qml b/src/contents/ui/main.qml index 3e0718a..b9170ea 100644 --- a/src/contents/ui/main.qml +++ b/src/contents/ui/main.qml @@ -229,7 +229,7 @@ Kirigami.ApplicationWindow { text: servicetype } Controls.Label { - text: servicedate + text: new Date(servicedate).toLocaleDateString(Qt.locale()) } Controls.Label { text: miles @@ -332,8 +332,9 @@ Kirigami.ApplicationWindow { text: qsTr("Add") highlighted: true onClicked: { + var dateObj = Date.fromLocaleDateString(Qt.locale(), dateField.text); if(milesField.acceptableInput) { - recordModel.addNewRecord(providerField.text, typeField.text, -1, parseInt(milesField.text), notesField.text); //TODO: add proper date + recordModel.addNewRecord(providerField.text, typeField.text, dateObj.toISOString(), parseInt(milesField.text), notesField.text); router.popRoute(); } else { formError.text = qsTr("Invalid number of miles."); diff --git a/src/db/sqlservicerecord.cpp b/src/db/sqlservicerecord.cpp index 938f1de..2b9b286 100644 --- a/src/db/sqlservicerecord.cpp +++ b/src/db/sqlservicerecord.cpp @@ -51,13 +51,13 @@ QVariant SqlServiceRecord::data ( const QModelIndex& index, int role ) const return value; } -void SqlServiceRecord::addNewRecord(QString serviceProvider, QString serviceType, qlonglong dateEpoch, int miles, QString notes) +void SqlServiceRecord::addNewRecord(QString serviceProvider, QString serviceType, QString dateISO, int miles, QString notes) { QSqlRecord newItem = this->record(); newItem.setValue("vehicle", this->currentVehicleID); newItem.setValue("serviceprovider", serviceProvider); newItem.setValue("servicetype", serviceType); - newItem.setValue("servicedate", dateEpoch); + newItem.setValue("servicedate", dateISO); newItem.setValue("miles", miles); newItem.setValue("notes", notes); this->insertRecord(-1, newItem); diff --git a/src/db/sqlservicerecord.h b/src/db/sqlservicerecord.h index ba418c3..be1decf 100644 --- a/src/db/sqlservicerecord.h +++ b/src/db/sqlservicerecord.h @@ -30,7 +30,7 @@ public: explicit SqlServiceRecord(QObject *parent = nullptr, QSqlDatabase db = QSqlDatabase()); QHash roleNames() const override; Q_INVOKABLE QVariant data(const QModelIndex &index, int role) const override; - Q_INVOKABLE void addNewRecord(QString serviceProvider, QString serviceType, qlonglong dateEpoch, int miles, QString notes); + Q_INVOKABLE void addNewRecord(QString serviceProvider, QString serviceType, QString dateISO, int miles, QString notes); Q_INVOKABLE void removeRecord(int index); Q_INVOKABLE void changeVehicleFilter(int id); diff --git a/src/main.cpp b/src/main.cpp index b0801b6..fea5220 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -59,7 +59,7 @@ Q_DECL_EXPORT int main(int argc, char *argv[]) //Create table structure db.open(); db.exec("CREATE TABLE vehicles (id INTEGER PRIMARY KEY, name TEXT, maker TEXT, vmodel TEXT, year INTEGER, image TEXT, vin TEXT);"); - db.exec("CREATE TABLE records (id INTEGER PRIMARY KEY, vehicle INTEGER, serviceprovider TEXT, servicetype TEXT, servicedate INTEGER, miles INTEGER, notes TEXT);"); + db.exec("CREATE TABLE records (id INTEGER PRIMARY KEY, vehicle INTEGER, serviceprovider TEXT, servicetype TEXT, servicedate TEXT, miles INTEGER, notes TEXT);"); db.commit(); db.close(); } -- GitLab