Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions backend/app/models/Legislation.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ class Legislation(Base):

id: Mapped[int] = mapped_column(Integer, primary_key=True)
title: Mapped[str] = mapped_column(String(255), nullable=False)
short_title: Mapped[str | None] = mapped_column(String(255), nullable=True)
bill_number: Mapped[str] = mapped_column(String(50), nullable=False)
session_number: Mapped[int] = mapped_column(Integer, nullable=False)
sponsor_id: Mapped[int | None] = mapped_column(ForeignKey("senator.id"), nullable=True)
Expand Down
3 changes: 3 additions & 0 deletions backend/app/schemas/legislation.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ class LegislationActionDTO(BaseModel):
class LegislationListDTO(BaseModel):
id: int
title: str
short_title: str | None = None
bill_number: str
session_number: int
sponsor_name: str
Expand All @@ -40,6 +41,7 @@ class LegislationDTO(LegislationDetailDTO):

class CreateLegislationDTO(BaseModel):
title: str
short_title: str | None = None
bill_number: str
session_number: int
sponsor_id: int | None
Expand All @@ -53,6 +55,7 @@ class CreateLegislationDTO(BaseModel):

class UpdateLegislationDTO(BaseModel):
title: str | None = None
short_title: str | None = None
bill_number: str | None = None
session_number: int | None = None
sponsor_id: int | None = None
Expand Down
1 change: 1 addition & 0 deletions backend/tests/models/test_other_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ def test_columns_exist(self):
expected = {
"id",
"title",
"short_title",
"bill_number",
"session_number",
"sponsor_id",
Expand Down
8 changes: 7 additions & 1 deletion frontend/src/app/legislation/[id]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,13 @@ export default async function LegislationDetailPage({
<StatusBadge status={legislation.status} />
</div>

<h1 className="text-3xl font-bold mb-4">{legislation.title}</h1>
<h1 className="text-3xl font-bold mb-1">{legislation.title}</h1>
{legislation.short_title && (
<p className="text-lg text-gray-500 italic mb-4">
{legislation.short_title}
</p>
)}
{!legislation.short_title && <div className="mb-4" />}

<div className="text-sm text-gray-600 mb-6 space-y-1">
<p>
Expand Down
12 changes: 12 additions & 0 deletions frontend/src/components/admin/LegislationForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ export function LegislationForm({
isLoading = false,
}: LegislationFormProps) {
const [title, setTitle] = useState(initialData?.title || "");
const [shortTitle, setShortTitle] = useState(initialData?.short_title || "");
const [billNumber, setBillNumber] = useState(initialData?.bill_number || "");
const [sessionNumber, setSessionNumber] = useState<number>(
initialData?.session_number || 1,
Expand Down Expand Up @@ -98,6 +99,7 @@ export function LegislationForm({
e.preventDefault();
onSubmit({
title: title.trim(),
short_title: shortTitle.trim() || null,
bill_number: billNumber.trim(),
session_number: sessionNumber,
sponsor_id: sponsorId,
Expand Down Expand Up @@ -140,6 +142,16 @@ export function LegislationForm({
</div>
</div>

<div className="space-y-2">
<Label htmlFor="short-title">Short Title (optional)</Label>
<Input
id="short-title"
type="text"
value={shortTitle}
onChange={(e) => setShortTitle(e.target.value)}
/>
</div>

<div className="grid gap-4 sm:grid-cols-2">
<div className="space-y-2">
<Label htmlFor="session-number">Session Number</Label>
Expand Down
1 change: 1 addition & 0 deletions frontend/src/types/admin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export interface UpdateNews {

export interface CreateLegislation {
title: string;
short_title?: string | null;
bill_number: string;
session_number: number;
sponsor_id: number | null;
Expand Down
1 change: 1 addition & 0 deletions frontend/src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ export interface LegislationAction {
export interface Legislation {
id: number;
title: string;
short_title?: string | null;
bill_number: string;
session_number: number;
sponsor_name: string;
Expand Down
Loading