diff --git a/forms.py b/forms.py index 7c2c657..7dcd4f4 100644 --- a/forms.py +++ b/forms.py @@ -16,7 +16,7 @@ class LoginForm(FlaskForm): class FoodItemForm(FlaskForm): - barcode = IntegerField("Barcode", validators=[Optional()]) + barcode = StringField("Barcode", validators=[Optional()]) name = StringField("Product Name", validators=[DataRequired()]) energy = IntegerField("Energy per 100g", validators=[InputRequired()]) protein = FloatField("protein per 100g", validators=[InputRequired()]) diff --git a/models.py b/models.py index 660c967..cb5292b 100644 --- a/models.py +++ b/models.py @@ -41,7 +41,7 @@ class Unit(db.Model): class FoodItem(db.Model): __tablename__ = "food_item" 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) name = db.Column(db.String(150), nullable=False) @@ -66,10 +66,12 @@ class FoodItem(db.Model): protein: float, carbs: float, fat: float, - barcode: Optional[int] = None, + barcode: Optional[str] = None, sugar: 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.owner_id = owner_id self.energy_100 = energy diff --git a/seed.py b/seed.py index 8592523..66b0748 100644 --- a/seed.py +++ b/seed.py @@ -17,7 +17,7 @@ with app.app_context(): protein=5.5, saturated_fat=10, sugar=35, - barcode=2278012003502, + barcode="2278012003502", ) )