Aktionen
Fehler #624
geschlossenEnumerator Attribute write Regression
Beginn:
10.10.2016
Abgabedatum:
% erledigt:
100%
Geschätzter Aufwand:
Beschreibung
In File entityinstancefactory.cpp wurde in der Methode
void EntityInstanceFactory::setAttributes(Entity *&e,
const QHash<QString, QVariant> &attributes,
QHash<QString, QMetaProperty> metaprops)
die Zeile prop.write(e, prop.enumerator().valueToKey(iterator.value().toInt()));
geändert zu
prop.write(e, prop.enumerator().key(iterator.value().toInt()));
Das führt dazu, dass nach dem Auslesen aus der DB das jeweilige Enum zyklisch um eine Position verschoben ins Attribut geschrieben wird. Im Falle der Anwesenheitsstatus gelten folgende Definitionen:
enum class AttendanceState {
PRESENT=1,
MISSING=2,
LATE=3,
ATSCHOOL=4,
UNDEFINED=-1
};
Statt "MISSING" wird nun "LATE" geschrieben, statt "LATE" kommt "ATSCHOOL", statt "ATSCHOOL" kommt "UNDEFINED". Ob auf "UNDEFINED" dann "PRESENT" kommt, habe ich nicht getestet.
Eine Rücknahme der o. a. Änderung stellt wieder das gewünschte Verhalten her.
Aktionen