Added roles for BeetRound purpose.

This commit is contained in:
2026-02-07 17:56:46 +01:00
parent 2fcd69df5f
commit c6d6b18ab3
10 changed files with 375 additions and 162 deletions

View File

@ -21,11 +21,20 @@ QByteArray TableModel::generateExampleItems() {
QJsonObject itemObject;
// itemObject.insert("uuid", m_uuid.toString());
// itemObject.insert("entryDateUTC", m_entryDateUTC.toString(Qt::ISODate));
itemObject.insert(ROLE_NAMES.value(NameRole), QString("Item %1").arg(row));
itemObject.insert(ROLE_NAMES.value(DescriptionRole), QString("This is item %1").arg(row));
itemObject.insert(ROLE_NAMES.value(InfoRole), QString("Info of item %1").arg(row));
itemObject.insert(ROLE_NAMES.value(AmountRole), row);
itemObject.insert(ROLE_NAMES.value(FactorRole), row * 1.1);
itemObject.insert(ROLE_NAMES.value(MembershipNumberRole), row);
itemObject.insert(ROLE_NAMES.value(LastNameRole), QString("Nachname%1").arg(row));
itemObject.insert(ROLE_NAMES.value(FirstNameRole), QString("Vorname%1").arg(row));
itemObject.insert(ROLE_NAMES.value(Bidding1Role), 100 + row);
itemObject.insert(ROLE_NAMES.value(DepotWish1Role), QString("Depot X%1").arg(row));
itemObject.insert(ROLE_NAMES.value(DepotWish2Role), QString("Depot Y%1").arg(row));
itemObject.insert(ROLE_NAMES.value(MailRole),
QString("%1@%2.com")
.arg(itemObject.value(ROLE_NAMES.value(FirstNameRole)).toString(),
itemObject.value(ROLE_NAMES.value(LastNameRole)).toString()));
itemObject.insert(ROLE_NAMES.value(ShareAmountRole), 1);
itemObject.insert(ROLE_NAMES.value(ShareTypeRole), SHARE_TYPES.at(row % 3));
itemObject.insert(ROLE_NAMES.value(BiddingTypeRole), BIDDING_TYPES.at(row % 4));
// itemObject.insert(ROLE_NAMES.value(FactorRole), row * 1.1);
array.append(itemObject);
}
@ -78,16 +87,25 @@ QVariant TableModel::data(const QModelIndex& index, int role) const {
case Qt::DisplayRole:
case Qt::EditRole:
return m_items.at(row)->data(roleForColumn);
case NameRole:
case DescriptionRole:
case InfoRole:
case AmountRole:
case FactorRole:
case IdRole:
case MembershipNumberRole:
case LastNameRole:
case FirstNameRole:
case FullNameRole:
case Bidding1Role:
case Bidding2Role:
case Bidding3Role:
case DepotWish1Role:
case DepotWish2Role:
case ShareAmountRole:
case MailRole:
case ShareTypeRole:
case BiddingTypeRole:
case OnlineIdRole:
case AccessCodeRole:
return m_items.at(row)->data(role);
case ToStringRole:
return m_items.at(row)->toString();
case ToJsonRole:
case JsonObjectRole:
return m_items.at(row)->toJsonObject();
}
@ -174,7 +192,7 @@ QList<QStringList> TableModel::getItemsAsStringLists() const {
// TODO use item selection as parameter to wrap multiple items into JSON data structure
QByteArray TableModel::jsonDataForServer(const QModelIndex& currentIndex) const {
const QJsonObject itemObject = data(currentIndex, ToJsonRole).toJsonObject();
const QJsonObject itemObject = data(currentIndex, JsonObjectRole).toJsonObject();
QJsonObject rootObject;
rootObject.insert(ITEM_KEY_STRING, itemObject);
const QJsonDocument jsonDoc(rootObject);
@ -350,8 +368,9 @@ QModelIndex TableModel::searchItemIndex(const ModelItemValues givenItemValues) c
bool TableModel::isItemEqualToItemValues(const QModelIndex& itemIndex,
const ModelItemValues givenItemValues) const {
/// do both have a UUID?
QVariant idOfItem = data(itemIndex, IdRole);
QVariant given = givenItemValues.value(IdRole);
const UserRoles idRole = OnlineIdRole;
QVariant idOfItem = data(itemIndex, idRole);
QVariant given = givenItemValues.value(idRole);
if (idOfItem.isValid() && given.isValid()) {
/// are the UUIDs the same?
if (idOfItem.toString() == given.toString()) {