diff --git a/backend/app/api/v1/routes/events.py b/backend/app/api/v1/routes/events.py index f1d20e1..57e40a3 100644 --- a/backend/app/api/v1/routes/events.py +++ b/backend/app/api/v1/routes/events.py @@ -58,8 +58,8 @@ def get_event(event_id: int, db: Session = Depends(get_db)): description="Return a paginated list of all events with their tags and fields.", responses={200: {"description": "List of events returned"}}, ) -def get_events(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): - events = crud.get_events(db=db, skip=skip, limit=limit) +def get_events(db: Session = Depends(get_db)): + events = crud.get_events(db=db) return events diff --git a/backend/app/api/v1/routes/fields.py b/backend/app/api/v1/routes/fields.py index c0fe770..16c1fc7 100644 --- a/backend/app/api/v1/routes/fields.py +++ b/backend/app/api/v1/routes/fields.py @@ -31,8 +31,8 @@ def create_field(field: schemas.FieldCreate, db: Session = Depends(get_db)): 200: {"description": "List of fields returned"}, }, ) -def get_fields(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): - fields = crud.get_fields(db=db, skip=skip, limit=limit) +def get_fields(db: Session = Depends(get_db)): + fields = crud.get_fields(db=db) return fields diff --git a/backend/app/api/v1/routes/tags.py b/backend/app/api/v1/routes/tags.py index c255a3c..5791c17 100644 --- a/backend/app/api/v1/routes/tags.py +++ b/backend/app/api/v1/routes/tags.py @@ -31,8 +31,8 @@ def create_tag(tag: schemas.TagCreate, db: Session = Depends(get_db)): 200: {"description": "List of tags returned"}, }, ) -def get_tags(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): - tags = crud.get_tags(db=db, skip=skip, limit=limit) +def get_tags(db: Session = Depends(get_db)): + tags = crud.get_tags(db=db) return tags diff --git a/backend/app/crud.py b/backend/app/crud.py index a367737..89fa3be 100644 --- a/backend/app/crud.py +++ b/backend/app/crud.py @@ -26,15 +26,14 @@ def get_event(db: Session, event_id: int): return db.query(models.Event).filter(models.Event.id == event_id).first() -def get_events(db: Session, skip: int = 0, limit: int = 100): +def get_events(db: Session): return ( db.query(models.Event) .options( joinedload(models.Event.tags), joinedload(models.Event.fields), ) - .offset(skip) - .limit(limit) + .order_by(models.Event.id) .all() ) @@ -87,8 +86,10 @@ def create_tag(db: Session, tag: schemas.TagCreate): return db_tag -def get_tags(db: Session, skip: int = 0, limit: int = 100): - return db.query(models.Tag).offset(skip).limit(limit).all() +def get_tags(db: Session): + return ( + db.query(models.Tag).order_by(models.Tag.created_at.desc(), models.Tag.id).all() + ) def get_tag(db: Session, tag_id: str): @@ -143,8 +144,8 @@ def create_field(db: Session, field: schemas.FieldCreate): return db_field -def get_fields(db: Session, skip: int = 0, limit: int = 100): - return db.query(models.Field).offset(skip).limit(limit).all() +def get_fields(db: Session): + return db.query(models.Field).order_by(models.Field.id).all() def get_field(db: Session, field_id: int): diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py index 3f29876..284f15c 100644 --- a/backend/app/models/__init__.py +++ b/backend/app/models/__init__.py @@ -44,6 +44,7 @@ class Event(Base, TimestampMixin): secondary="event_tags", back_populates="events", viewonly=True, + order_by="Tag.id.asc()", ) field_links = relationship( @@ -54,6 +55,7 @@ class Event(Base, TimestampMixin): secondary="event_fields", back_populates="events", viewonly=True, + order_by="Field.id.asc()", ) diff --git a/frontend/components.json b/frontend/components.json index a0bbd56..0bd40b3 100644 --- a/frontend/components.json +++ b/frontend/components.json @@ -12,8 +12,8 @@ "aliases": { "components": "@/components", "composables": "@/composables", - "utils": "@/lib/utils", - "ui": "@/components/ui", + "utils": "@/shared/utils/general", + "ui": "@/shared/ui", "lib": "@/lib" }, "iconLibrary": "lucide" diff --git a/frontend/package-lock.json b/frontend/package-lock.json index cf8cb77..7231c0b 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "evsy-frontend", - "version": "0.0.0", + "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "evsy-frontend", - "version": "0.0.0", + "version": "0.1.0", "dependencies": { "@tailwindcss/vite": "^4.1.4", "@tanstack/vue-table": "^8.21.3", @@ -17,7 +17,7 @@ "clsx": "^2.1.1", "lucide-vue-next": "^0.488.0", "pinia": "^3.0.2", - "reka-ui": "^2.2.0", + "reka-ui": "^2.2.1", "tailwind-merge": "^3.2.0", "tailwindcss": "^4.1.4", "tw-animate-css": "^1.2.5", @@ -3736,9 +3736,9 @@ ] }, "node_modules/reka-ui": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/reka-ui/-/reka-ui-2.2.0.tgz", - "integrity": "sha512-eeRrLI4LwJ6dkdwks6KFNKGs0+beqZlHO3JMHen7THDTh+yJ5Z0KNwONmOhhV/0hZC2uJCEExgG60QPzGstkQg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/reka-ui/-/reka-ui-2.2.1.tgz", + "integrity": "sha512-oLHiyBn6gTIQGnTnv8G5LQuFp9j8HuUNl0qdnW3XPhFb/07hrxzFpjo2kt/jxOZive+n/XWDbOjSj2h9Hih3qA==", "dependencies": { "@floating-ui/dom": "^1.6.13", "@floating-ui/vue": "^1.1.6", diff --git a/frontend/package.json b/frontend/package.json index fc01cb3..97d7aac 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -22,7 +22,7 @@ "clsx": "^2.1.1", "lucide-vue-next": "^0.488.0", "pinia": "^3.0.2", - "reka-ui": "^2.2.0", + "reka-ui": "^2.2.1", "tailwind-merge": "^3.2.0", "tailwindcss": "^4.1.4", "tw-animate-css": "^1.2.5", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index efb410d..b3df123 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -6,6 +6,7 @@ import { Toaster } from '@/shared/ui/sonner'