This commit is contained in:
+25
-14
@@ -22,7 +22,10 @@ type speciesForm struct {
|
||||
SoilReaction string `form:"soil_reaction"`
|
||||
WinterProtection string `form:"winter_protection"`
|
||||
SpacingCM int `form:"spacing_cm"`
|
||||
HeightCM int `form:"height_cm"`
|
||||
HeightCMFrom int `form:"height_cm_from"`
|
||||
HeightCMTo int `form:"height_cm_to"`
|
||||
WidthCMFrom int `form:"width_cm_from"`
|
||||
WidthCMTo int `form:"width_cm_to"`
|
||||
Notes string `form:"notes"`
|
||||
ImageData string `form:"image_data"`
|
||||
ImageID int `form:"image_id"`
|
||||
@@ -133,7 +136,13 @@ func speciesFormFromSpecies(value client.Species) speciesForm {
|
||||
form.WinterProtection = *value.WinterProtection
|
||||
}
|
||||
copyOptionalInt(value.SpacingCM, &form.SpacingCM)
|
||||
copyOptionalInt(value.HeightCM, &form.HeightCM)
|
||||
copyOptionalInt(value.HeightCMFrom, &form.HeightCMFrom)
|
||||
copyOptionalInt(value.HeightCMTo, &form.HeightCMTo)
|
||||
if value.HeightCMTo == nil {
|
||||
copyOptionalInt(value.HeightCM, &form.HeightCMTo)
|
||||
}
|
||||
copyOptionalInt(value.WidthCMFrom, &form.WidthCMFrom)
|
||||
copyOptionalInt(value.WidthCMTo, &form.WidthCMTo)
|
||||
copyOptionalInt(value.CategoryID, &form.CategoryID)
|
||||
copyOptionalInt(value.SowMonthFrom, &form.SowMonthFrom)
|
||||
copyOptionalInt(value.SowDayFrom, &form.SowDayFrom)
|
||||
@@ -219,9 +228,10 @@ func speciesInput(form speciesForm) client.SpeciesInput {
|
||||
if form.SpacingCM > 0 {
|
||||
input.SpacingCM = &form.SpacingCM
|
||||
}
|
||||
if form.HeightCM > 0 {
|
||||
input.HeightCM = &form.HeightCM
|
||||
}
|
||||
input.HeightCMFrom, input.HeightCMTo = optionalPositive(form.HeightCMFrom), optionalPositive(form.HeightCMTo)
|
||||
input.WidthCMFrom, input.WidthCMTo = optionalPositive(form.WidthCMFrom), optionalPositive(form.WidthCMTo)
|
||||
input.ClearHeightCMFrom, input.ClearHeightCMTo = form.HeightCMFrom == 0, form.HeightCMTo == 0
|
||||
input.ClearWidthCMFrom, input.ClearWidthCMTo = form.WidthCMFrom == 0, form.WidthCMTo == 0
|
||||
if json.Valid([]byte(form.Attributes)) {
|
||||
input.Attributes = json.RawMessage(form.Attributes)
|
||||
}
|
||||
@@ -230,18 +240,12 @@ func speciesInput(form speciesForm) client.SpeciesInput {
|
||||
} else {
|
||||
input.ClearCategoryID = true
|
||||
}
|
||||
assignPositive := func(value int) *int {
|
||||
if value > 0 {
|
||||
return &value
|
||||
}
|
||||
return nil
|
||||
}
|
||||
form.SowMonthTo, form.SowDayTo = rangeEnd(form.SowMonthFrom, form.SowDayFrom, form.SowDuration, form.SowDurationUnit)
|
||||
form.PlantingMonthTo, form.PlantingDayTo = rangeEnd(form.PlantingMonthFrom, form.PlantingDayFrom, form.PlantingDuration, form.PlantingDurationUnit)
|
||||
form.HarvestMonthTo, form.HarvestDayTo = rangeEnd(form.HarvestMonthFrom, form.HarvestDayFrom, form.HarvestDuration, form.HarvestDurationUnit)
|
||||
input.SowMonthFrom, input.SowDayFrom, input.SowMonthTo, input.SowDayTo = assignPositive(form.SowMonthFrom), assignPositive(form.SowDayFrom), assignPositive(form.SowMonthTo), assignPositive(form.SowDayTo)
|
||||
input.PlantingMonthFrom, input.PlantingDayFrom, input.PlantingMonthTo, input.PlantingDayTo = assignPositive(form.PlantingMonthFrom), assignPositive(form.PlantingDayFrom), assignPositive(form.PlantingMonthTo), assignPositive(form.PlantingDayTo)
|
||||
input.HarvestMonthFrom, input.HarvestDayFrom, input.HarvestMonthTo, input.HarvestDayTo = assignPositive(form.HarvestMonthFrom), assignPositive(form.HarvestDayFrom), assignPositive(form.HarvestMonthTo), assignPositive(form.HarvestDayTo)
|
||||
input.SowMonthFrom, input.SowDayFrom, input.SowMonthTo, input.SowDayTo = optionalPositive(form.SowMonthFrom), optionalPositive(form.SowDayFrom), optionalPositive(form.SowMonthTo), optionalPositive(form.SowDayTo)
|
||||
input.PlantingMonthFrom, input.PlantingDayFrom, input.PlantingMonthTo, input.PlantingDayTo = optionalPositive(form.PlantingMonthFrom), optionalPositive(form.PlantingDayFrom), optionalPositive(form.PlantingMonthTo), optionalPositive(form.PlantingDayTo)
|
||||
input.HarvestMonthFrom, input.HarvestDayFrom, input.HarvestMonthTo, input.HarvestDayTo = optionalPositive(form.HarvestMonthFrom), optionalPositive(form.HarvestDayFrom), optionalPositive(form.HarvestMonthTo), optionalPositive(form.HarvestDayTo)
|
||||
input.ClearSowRange = form.SowMonthFrom == 0 && form.SowMonthTo == 0
|
||||
input.ClearPlantingRange = form.PlantingMonthFrom == 0 && form.PlantingMonthTo == 0
|
||||
input.ClearHarvestRange = form.HarvestMonthFrom == 0 && form.HarvestMonthTo == 0
|
||||
@@ -251,6 +255,13 @@ func speciesInput(form speciesForm) client.SpeciesInput {
|
||||
return input
|
||||
}
|
||||
|
||||
func optionalPositive(value int) *int {
|
||||
if value > 0 {
|
||||
return &value
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func rangeEnd(month, day, duration int, unit string) (int, int) {
|
||||
if month < 1 {
|
||||
return 0, 0
|
||||
|
||||
Reference in New Issue
Block a user