feat: Add project type and status fields to project forms and views, including database migrations

This commit is contained in:
Chop
2025-06-04 22:53:33 +02:00
parent e136c9f0e8
commit 49d49b42f1
6 changed files with 138 additions and 6 deletions

View File

@@ -12,8 +12,8 @@ import { differenceInCalendarDays, parseISO } from "date-fns";
import PageContainer from "@/components/ui/PageContainer";
import PageHeader from "@/components/ui/PageHeader";
export default async function ProjectViewPage({ params }) {
const { id } = await params;
export default function ProjectViewPage({ params }) {
const { id } = params;
const project = getProjectWithContract(id);
const notes = getNotesForProject(id);
const daysRemaining = differenceInCalendarDays(
@@ -141,6 +141,36 @@ export default async function ProjectViewPage({ params }) {
<p className="text-gray-900">{project.notes}</p>
</div>
)}
<div>
<span className="text-sm font-medium text-gray-500">
Typ projektu
</span>
<p className="text-gray-900">
{project.project_type === "design"
? "Projektowanie"
: project.project_type === "construction"
? "Realizacja"
: project.project_type === "design+construction"
? "Projektowanie + Realizacja"
: "-"}
</p>
</div>
<div>
<span className="text-sm font-medium text-gray-500">
Status projektu
</span>
<p className="text-gray-900">
{project.project_status === "registered"
? "Zarejestrowany"
: project.project_status === "in_progress_design"
? "W realizacji (projektowanie)"
: project.project_status === "in_progress_construction"
? "W realizacji (realizacja)"
: project.project_status === "fulfilled"
? "Zakończony"
: "-"}
</p>
</div>
</CardContent>
</Card>
<Card>

View File

@@ -192,6 +192,26 @@ export default function ProjectListPage() {
<div className="col-span-1 text-sm text-gray-600 truncate">
{project.finish_date || "N/A"}
</div>
<div className="col-span-1 text-sm text-gray-600 truncate">
{project.project_type === "design"
? "Projektowanie"
: project.project_type === "construction"
? "Realizacja"
: project.project_type === "design+construction"
? "Projektowanie + Realizacja"
: "-"}
</div>
<div className="col-span-1 text-sm text-gray-600 truncate">
{project.project_status === "registered"
? "Zarejestrowany"
: project.project_status === "in_progress_design"
? "W realizacji (projektowanie)"
: project.project_status === "in_progress_construction"
? "W realizacji (realizacja)"
: project.project_status === "fulfilled"
? "Zakończony"
: "-"}
</div>
<div className="col-span-1">
<Link href={`/projects/${project.project_id}`}>
<Button variant="outline" size="sm">