Skip to content

Commit

Permalink
Progress on adding BeerJSON support to Yeast
Browse files Browse the repository at this point in the history
  • Loading branch information
Matt Young committed May 31, 2023
1 parent 8fe65fa commit 0ef0167
Show file tree
Hide file tree
Showing 38 changed files with 1,023 additions and 932 deletions.
4 changes: 0 additions & 4 deletions src/BrewNoteWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,7 @@ BrewNoteWidget::~BrewNoteWidget() = default;

//.:TBD:. See comment in PitchDialog::updateProductionDate() for how we might re-implement per-field date format
// selection
// I should really do this better, but I really cannot bring myself to do
// another UnitSystem for one input field.
void BrewNoteWidget::updateDateFormat() {
// auto dateFormat = Localization::getDateFormatForField(PersistentSettings::BrewNote::fermentDate,
// PersistentSettings::Sections::page_postferment);
auto dateFormat = Localization::getDateFormat();
QString format = Localization::numericToStringDateFormat(dateFormat);
this->lineEdit_fermentDate->setDisplayFormat(format);
Expand Down
4 changes: 2 additions & 2 deletions src/BtTreeItem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -335,8 +335,8 @@ QVariant BtTreeItem::dataMisc(int column) {
break;
case MISCUSECOL:
if (misc) {
auto const use = misc->use();
return use ? QVariant(Misc::useDisplayNames[*use]) : "";
// Note that EnumStringMapping::operator[] already handles returning blank string for unset optional enums
return QVariant(Misc::useDisplayNames[misc->use()]);
}
break;
default :
Expand Down
6 changes: 1 addition & 5 deletions src/PersistentSettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ AddSettingName(windowState)
//======================================================================================================================
//======================================================================================================================
//======================================== Start of setting SECTION constants ==========================================
// .:TODO:. I think most of these are no longer used and can be deleted
#define AddSettingSection(section) namespace PersistentSettings::Sections { BtStringConst const section{#section}; }
AddSettingSection(alcoholTool)
AddSettingSection(backups)
Expand All @@ -98,12 +99,7 @@ AddSettingSection(MainWindow)
AddSettingSection(mashStepTableModel)
AddSettingSection(miscTable)
AddSettingSection(miscTableModel)
AddSettingSection(page_postboil)
AddSettingSection(page_postferment)
AddSettingSection(page_preboil)
AddSettingSection(pitchRateCalc)
AddSettingSection(saltTable)
AddSettingSection(tab_recipe)
AddSettingSection(yeastTable)
AddSettingSection(yeastTableModel)
#undef AddSettingName
Expand Down
2 changes: 1 addition & 1 deletion src/RecipeFormatter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1441,7 +1441,7 @@ QString RecipeFormatter::getToolTip(Yeast* yeast) {
.arg(yeast->laboratory());
body += QString("<td class=\"left\">%1</td><td class=\"value\">%2</td></tr>")
.arg(tr("Attenuation"))
.arg(Measurement::displayQuantity(yeast->attenuation_pct(), 3));
.arg(Measurement::displayQuantity(yeast->getTypicalAttenuation_pct(), 3));

// third row -- atten and floc
body += QString("<tr><td class=\"left\">%1</td><td class=\"value\">%2</td>")
Expand Down
64 changes: 37 additions & 27 deletions src/database/DatabaseSchemaHelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -566,31 +566,31 @@ namespace {
{QString(" UPDATE fermentable SET ftype = 'extract' WHERE ftype = 'Extract'" )},
{QString(" UPDATE fermentable SET ftype = 'dry extract' WHERE ftype = 'Dry Extract'")},
{QString(" UPDATE fermentable SET ftype = 'other' WHERE ftype = 'Adjunct'" )},
{QString("ALTER TABLE fermentable ADD COLUMN grain_group %1").arg(db.getDbNativeTypeName<QString>())},
{QString("ALTER TABLE fermentable ADD COLUMN producer %1").arg(db.getDbNativeTypeName<QString>())},
{QString("ALTER TABLE fermentable ADD COLUMN productId %1").arg(db.getDbNativeTypeName<QString>())},
{QString("ALTER TABLE fermentable ADD COLUMN fineGrindYield_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN coarseGrindYield_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN potentialYield_sg %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN alphaAmylase_dextUnits %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN kolbachIndex_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN amountIsWeight %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE fermentable ADD COLUMN hardnessPrpGlassy_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN hardnessPrpHalf_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN hardnessPrpMealy_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN kernelSizePrpPlump_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN kernelSizePrpThin_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN friability_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN di_ph %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN viscosity_cP %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN dmsP %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN dmsPIsMassPerVolume %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE fermentable ADD COLUMN fan %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN fanIsMassPerVolume %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE fermentable ADD COLUMN fermentability_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN betaGlucan %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN betaGlucanIsMassPerVolume %1").arg(db.getDbNativeTypeName<bool >())},
{QString(" UPDATE fermentable SET amountIsWeight = ?"), {QVariant{true}}}, // All existing amounts will be weights
{QString("ALTER TABLE fermentable ADD COLUMN grain_group %1").arg(db.getDbNativeTypeName<QString>())},
{QString("ALTER TABLE fermentable ADD COLUMN producer %1").arg(db.getDbNativeTypeName<QString>())},
{QString("ALTER TABLE fermentable ADD COLUMN productid %1").arg(db.getDbNativeTypeName<QString>())},
{QString("ALTER TABLE fermentable ADD COLUMN fine_grind_yield_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN coarse_grind_yield_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN potential_yield_sg %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN alpha_amylase_dext_units %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN kolbach_index_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN amount_is_weight %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE fermentable ADD COLUMN hardness_prp_glassy_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN hardness_prp_half_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN hardness_prp_mealy_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN kernel_size_prp_plump_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN kernel_size_prp_thin_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN friability_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN di_ph %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN viscosity_cp %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN dmsp %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN dmsp_is_mass_per_volume %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE fermentable ADD COLUMN fan %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN fan_is_mass_per_volume %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE fermentable ADD COLUMN fermentability_pct %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN beta_glucan %1").arg(db.getDbNativeTypeName<double >())},
{QString("ALTER TABLE fermentable ADD COLUMN beta_glucan_is_mass_per_volume %1").arg(db.getDbNativeTypeName<bool >())},
{QString(" UPDATE fermentable SET amount_is_weight = ?"), {QVariant{true}}}, // All existing amounts will be weights
//
// Misc: Extended and additional fields for BeerJSON
//
Expand All @@ -601,8 +601,8 @@ namespace {
{QString(" UPDATE misc SET mtype = 'herb' WHERE mtype = 'Herb' ")},
{QString(" UPDATE misc SET mtype = 'flavor' WHERE mtype = 'Flavor' ")},
{QString(" UPDATE misc SET mtype = 'other' WHERE mtype = 'Other' ")},
{QString("ALTER TABLE misc ADD COLUMN producer %1").arg(db.getDbNativeTypeName<QString>())},
{QString("ALTER TABLE misc ADD COLUMN product_id %1").arg(db.getDbNativeTypeName<QString>())},
{QString("ALTER TABLE misc ADD COLUMN producer %1").arg(db.getDbNativeTypeName<QString>())},
{QString("ALTER TABLE misc ADD COLUMN product_id %1").arg(db.getDbNativeTypeName<QString>())},
//
// Yeast: Extended and additional fields for BeerJSON
//
Expand All @@ -620,6 +620,16 @@ namespace {
{QString(" UPDATE yeast SET flocculation = 'medium' WHERE flocculation = 'Medium' ")},
{QString(" UPDATE yeast SET flocculation = 'high' WHERE flocculation = 'High' ")},
{QString(" UPDATE yeast SET flocculation = 'very high' WHERE flocculation = 'Very High'")},
{QString("ALTER TABLE yeast ADD COLUMN alcohol_tolerance_pct %1").arg(db.getDbNativeTypeName<double>())},
{QString("ALTER TABLE yeast ADD COLUMN attenuation_min_pct %1").arg(db.getDbNativeTypeName<double>())},
{QString("ALTER TABLE yeast ADD COLUMN attenuation_max_pct %1").arg(db.getDbNativeTypeName<double>())},
{QString("ALTER TABLE yeast ADD COLUMN phenolic_off_flavor_positive %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE yeast ADD COLUMN glucoamylase_positive %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE yeast ADD COLUMN killer_producing_k1_toxin %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE yeast ADD COLUMN killer_producing_k2_toxin %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE yeast ADD COLUMN killer_producing_k28_toxin %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE yeast ADD COLUMN killer_producing_klus_toxin %1").arg(db.getDbNativeTypeName<bool >())},
{QString("ALTER TABLE yeast ADD COLUMN killer_neutral %1").arg(db.getDbNativeTypeName<bool >())},

};
return executeSqlQueries(q, migrationQueries);
Expand Down
Loading

0 comments on commit 0ef0167

Please sign in to comment.