Compare commits
No commits in common. "a75921d633e137f201e8476c7b4aaa463e257633" and "d5b5ee8192323df80495e8a255ff3c74fe85489c" have entirely different histories.
a75921d633
...
d5b5ee8192
7 changed files with 2 additions and 116 deletions
|
|
@ -1,15 +0,0 @@
|
||||||
from sqlmodel import Session, create_engine, text
|
|
||||||
from database import DATABASE_URL
|
|
||||||
|
|
||||||
def add_column():
|
|
||||||
engine = create_engine(DATABASE_URL)
|
|
||||||
with Session(engine) as session:
|
|
||||||
try:
|
|
||||||
session.exec(text("ALTER TABLE comment ADD COLUMN parent_id INTEGER REFERENCES comment(id)"))
|
|
||||||
session.commit()
|
|
||||||
print("Successfully added parent_id column to comment table")
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Error adding column (might already exist): {e}")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
add_column()
|
|
||||||
|
|
@ -138,7 +138,6 @@ class Comment(SQLModel, table=True):
|
||||||
show_id: Optional[int] = Field(default=None, foreign_key="show.id")
|
show_id: Optional[int] = Field(default=None, foreign_key="show.id")
|
||||||
venue_id: Optional[int] = Field(default=None, foreign_key="venue.id")
|
venue_id: Optional[int] = Field(default=None, foreign_key="venue.id")
|
||||||
song_id: Optional[int] = Field(default=None, foreign_key="song.id")
|
song_id: Optional[int] = Field(default=None, foreign_key="song.id")
|
||||||
parent_id: Optional[int] = Field(default=None, foreign_key="comment.id")
|
|
||||||
|
|
||||||
user: "User" = Relationship(back_populates="comments")
|
user: "User" = Relationship(back_populates="comments")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,18 +24,8 @@ def create_comment(
|
||||||
session.commit()
|
session.commit()
|
||||||
session.refresh(db_comment)
|
session.refresh(db_comment)
|
||||||
|
|
||||||
# Notify parent author if reply
|
# Notify parent author if reply (TODO: Add parent_id to Comment model)
|
||||||
if db_comment.parent_id:
|
# For now, let's just log it or skip.
|
||||||
parent_comment = session.get(Comment, db_comment.parent_id)
|
|
||||||
if parent_comment and parent_comment.user_id != current_user.id:
|
|
||||||
create_notification(
|
|
||||||
session,
|
|
||||||
user_id=parent_comment.user_id,
|
|
||||||
title="New Reply",
|
|
||||||
message=f"Someone replied to your comment.",
|
|
||||||
type="reply",
|
|
||||||
link=f"/activity"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Handle Mentions
|
# Handle Mentions
|
||||||
mention_pattern = r"@(\w+)"
|
mention_pattern = r"@(\w+)"
|
||||||
|
|
|
||||||
|
|
@ -207,7 +207,6 @@ class CommentBase(SQLModel):
|
||||||
show_id: Optional[int] = None
|
show_id: Optional[int] = None
|
||||||
venue_id: Optional[int] = None
|
venue_id: Optional[int] = None
|
||||||
song_id: Optional[int] = None
|
song_id: Optional[int] = None
|
||||||
parent_id: Optional[int] = None
|
|
||||||
|
|
||||||
class CommentCreate(CommentBase):
|
class CommentCreate(CommentBase):
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
"use client"
|
|
||||||
|
|
||||||
import * as React from "react"
|
|
||||||
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area"
|
|
||||||
|
|
||||||
import { cn } from "@/lib/utils"
|
|
||||||
|
|
||||||
const ScrollArea = React.forwardRef<
|
|
||||||
React.ElementRef<typeof ScrollAreaPrimitive.Root>,
|
|
||||||
React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>
|
|
||||||
>(({ className, children, ...props }, ref) => (
|
|
||||||
<ScrollAreaPrimitive.Root
|
|
||||||
ref={ref}
|
|
||||||
className={cn("relative overflow-hidden", className)}
|
|
||||||
{...props}
|
|
||||||
>
|
|
||||||
<ScrollAreaPrimitive.Viewport className="h-full w-full rounded-[inherit]">
|
|
||||||
{children}
|
|
||||||
</ScrollAreaPrimitive.Viewport>
|
|
||||||
<ScrollBar />
|
|
||||||
<ScrollAreaPrimitive.Corner />
|
|
||||||
</ScrollAreaPrimitive.Root>
|
|
||||||
))
|
|
||||||
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName
|
|
||||||
|
|
||||||
const ScrollBar = React.forwardRef<
|
|
||||||
React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,
|
|
||||||
React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>
|
|
||||||
>(({ className, orientation = "vertical", ...props }, ref) => (
|
|
||||||
<ScrollAreaPrimitive.ScrollAreaScrollbar
|
|
||||||
ref={ref}
|
|
||||||
orientation={orientation}
|
|
||||||
className={cn(
|
|
||||||
"flex touch-none select-none transition-colors",
|
|
||||||
orientation === "vertical" &&
|
|
||||||
"h-full w-2.5 border-l border-l-transparent p-[1px]",
|
|
||||||
orientation === "horizontal" &&
|
|
||||||
"h-2.5 border-t border-t-transparent p-[1px]",
|
|
||||||
className
|
|
||||||
)}
|
|
||||||
{...props}
|
|
||||||
>
|
|
||||||
<ScrollAreaPrimitive.ScrollAreaThumb className="relative flex-1 rounded-full bg-border" />
|
|
||||||
</ScrollAreaPrimitive.ScrollAreaScrollbar>
|
|
||||||
))
|
|
||||||
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName
|
|
||||||
|
|
||||||
export { ScrollArea, ScrollBar }
|
|
||||||
38
frontend/package-lock.json
generated
38
frontend/package-lock.json
generated
|
|
@ -12,7 +12,6 @@
|
||||||
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
||||||
"@radix-ui/react-label": "^2.1.8",
|
"@radix-ui/react-label": "^2.1.8",
|
||||||
"@radix-ui/react-popover": "^1.1.15",
|
"@radix-ui/react-popover": "^1.1.15",
|
||||||
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
||||||
"@radix-ui/react-tabs": "^1.1.13",
|
"@radix-ui/react-tabs": "^1.1.13",
|
||||||
"class-variance-authority": "^0.7.1",
|
"class-variance-authority": "^0.7.1",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
|
|
@ -2281,12 +2280,6 @@
|
||||||
"url": "https://opencollective.com/pkgr"
|
"url": "https://opencollective.com/pkgr"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/number": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/@radix-ui/primitive": {
|
"node_modules/@radix-ui/primitive": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
|
||||||
|
|
@ -2812,37 +2805,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-scroll-area": {
|
|
||||||
"version": "1.2.10",
|
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz",
|
|
||||||
"integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@radix-ui/number": "1.1.1",
|
|
||||||
"@radix-ui/primitive": "1.1.3",
|
|
||||||
"@radix-ui/react-compose-refs": "1.1.2",
|
|
||||||
"@radix-ui/react-context": "1.1.2",
|
|
||||||
"@radix-ui/react-direction": "1.1.1",
|
|
||||||
"@radix-ui/react-presence": "1.1.5",
|
|
||||||
"@radix-ui/react-primitive": "2.1.3",
|
|
||||||
"@radix-ui/react-use-callback-ref": "1.1.1",
|
|
||||||
"@radix-ui/react-use-layout-effect": "1.1.1"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@types/react": "*",
|
|
||||||
"@types/react-dom": "*",
|
|
||||||
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
|
|
||||||
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"@types/react": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"@types/react-dom": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@radix-ui/react-slot": {
|
"node_modules/@radix-ui/react-slot": {
|
||||||
"version": "1.2.3",
|
"version": "1.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@
|
||||||
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
||||||
"@radix-ui/react-label": "^2.1.8",
|
"@radix-ui/react-label": "^2.1.8",
|
||||||
"@radix-ui/react-popover": "^1.1.15",
|
"@radix-ui/react-popover": "^1.1.15",
|
||||||
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
||||||
"@radix-ui/react-tabs": "^1.1.13",
|
"@radix-ui/react-tabs": "^1.1.13",
|
||||||
"class-variance-authority": "^0.7.1",
|
"class-variance-authority": "^0.7.1",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue