mirror of
https://github.com/StefBuwalda/cal_counter.git
synced 2025-10-30 03:10:00 +00:00
Change barcode field from integer to string
Updated the barcode field in FoodItem model and form from integer to string to support barcodes with leading zeros or non-numeric values. Added validation to ensure barcode contains only digits. Updated seed data to use string barcodes.
This commit is contained in:
2
forms.py
2
forms.py
@@ -16,7 +16,7 @@ class LoginForm(FlaskForm):
|
|||||||
|
|
||||||
|
|
||||||
class FoodItemForm(FlaskForm):
|
class FoodItemForm(FlaskForm):
|
||||||
barcode = IntegerField("Barcode", validators=[Optional()])
|
barcode = StringField("Barcode", validators=[Optional()])
|
||||||
name = StringField("Product Name", validators=[DataRequired()])
|
name = StringField("Product Name", validators=[DataRequired()])
|
||||||
energy = IntegerField("Energy per 100g", validators=[InputRequired()])
|
energy = IntegerField("Energy per 100g", validators=[InputRequired()])
|
||||||
protein = FloatField("protein per 100g", validators=[InputRequired()])
|
protein = FloatField("protein per 100g", validators=[InputRequired()])
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class Unit(db.Model):
|
|||||||
class FoodItem(db.Model):
|
class FoodItem(db.Model):
|
||||||
__tablename__ = "food_item"
|
__tablename__ = "food_item"
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
barcode = db.Column(db.Integer)
|
barcode = db.Column(db.String)
|
||||||
owner_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
|
owner_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
|
||||||
name = db.Column(db.String(150), nullable=False)
|
name = db.Column(db.String(150), nullable=False)
|
||||||
|
|
||||||
@@ -66,10 +66,12 @@ class FoodItem(db.Model):
|
|||||||
protein: float,
|
protein: float,
|
||||||
carbs: float,
|
carbs: float,
|
||||||
fat: float,
|
fat: float,
|
||||||
barcode: Optional[int] = None,
|
barcode: Optional[str] = None,
|
||||||
sugar: Optional[float] = None,
|
sugar: Optional[float] = None,
|
||||||
saturated_fat: Optional[float] = None,
|
saturated_fat: Optional[float] = None,
|
||||||
):
|
):
|
||||||
|
if barcode and not barcode.isdigit():
|
||||||
|
raise ValueError("Barcode must contain only digits.")
|
||||||
self.name = name
|
self.name = name
|
||||||
self.owner_id = owner_id
|
self.owner_id = owner_id
|
||||||
self.energy_100 = energy
|
self.energy_100 = energy
|
||||||
|
|||||||
Reference in New Issue
Block a user