{% extends 'base.html' %}{% block title %}{{ project.reference }} · {{ project.title }}{% endblock %}{% block breadcrumb %}Project Workspace{% endblock %}{% block content %}

PRIVATE CUSTOMER PROJECT · {{ project.reference }}

{{ project.title }}

{{ project.get_creative_type_display }} · {{ project.get_delivery_state_display }} · {{ project.delivery_city }} · Quantity {{ project.quantity }}

{% if user.is_authenticated and project.customer_id == user.pk %}All my projects{% if whatsapp_url %}Continue to messaging{% endif %}{% endif %}
{% if project.order %}{% endif %} {% if is_team and not project.order_id %}
DESIGN TASK · {{ project.reference }}

Design this project in Studio

Open the brief beside the canvas, build the design draft, save it, then upload a proof version for the customer to review.

Open task in Design Studio
{% endif %}

Project brief

{{ project.brief|linebreaksbr }}

{% if project.inspiration_file %}Download private inspiration file{% endif %}
Project type
{{ project.get_creative_type_display }}
Quantity
{{ project.quantity }}
Nigeria region
{{ project.delivery_region|default:'Not recorded' }}
State
{{ project.get_delivery_state_display }}
LGA
{{ project.delivery_lga.name|default:'Not recorded' }}
Town / community
{{ project.delivery_city }}
Street address
{{ project.delivery_address|linebreaksbr }}
{% if project.delivery_latitude is not None and project.delivery_longitude is not None %}
Map point
{{ project.delivery_latitude }}, {{ project.delivery_longitude }}
{% endif %}
Phone
{{ project.contact_phone }}
Requested by
{% if project.requested_date %}{{ project.requested_date|date:'d M Y' }}{% else %}Not specified{% endif %}
Lead designer
{{ project.assigned_to|default:'Being assigned' }}
{% if project.design_team.exists %}
Design team
{% for designer in project.design_team.all %}{{ designer.get_full_name|default:designer.username }}{% if not forloop.last %}, {% endif %}{% endfor %}
{% endif %}
Project stage
{% if project.order %}{{ project.order.get_status_display }}{% else %}{{ project.get_status_display }}{% endif %}
{% if latest_proof %}

Design proof · v{{ latest_proof.version }}

Status: {{ latest_proof.get_status_display }} · Uploaded {{ latest_proof.uploaded_at|date:'d M Y H:i' }}

{% if latest_proof.decision_note or latest_proof.decision_area or latest_proof.decision_page %}

Latest feedback: {% if latest_proof.decision_page %}page {{ latest_proof.decision_page }}{% endif %}{% if latest_proof.decision_area %} · {{ latest_proof.decision_area }}{% endif %}{% if latest_proof.decision_note %} · {{ latest_proof.decision_note }}{% endif %}

{% endif %}Download private proof{% if can_decide_proof and latest_proof.status == 'pending' %}
{% csrf_token %}
{% endif %}
{% endif %} {% if project.quote_issued_at %}

GENEZ QUOTE · ISSUED {{ project.quote_issued_at|date:'d M Y' }}

Print and delivery quote

Product / scope
{{ project.product.name }}
Project type
{{ project.get_creative_type_display }}
Quantity
{{ project.quantity }}
Price per unit
₦{{ project.quote_unit_price|floatformat:2 }}
Print subtotal
₦{{ project.quoted_subtotal|floatformat:2 }}
Delivery service
{{ project.quote_carrier_snapshot }} · {{ project.quote_service_snapshot }}
Delivery charge
₦{{ project.quote_delivery_total|floatformat:2 }}
Delivery estimate
{{ project.quote_eta_min_days }}–{{ project.quote_eta_max_days }} days after dispatch
Total
₦{{ project.quoted_total|floatformat:2 }}
Quote expires
{{ project.quote_expires_on|date:'d M Y' }}
{% if project.status == 'quoted' and latest_proof.status == 'approved' and project.customer_id == user.pk %}
{% csrf_token %}

This creates an unpaid order. You will review it and continue to secure payment.

{% endif %}
{% endif %} {% if can_quote %}

Prepare or update quote

Issue only after the customer approves the latest design proof. The delivery amount is calculated from the selected active rate card.

{% csrf_token %}{{ quote_form.non_field_errors }}{% for field in quote_form %}{% endfor %}
{% endif %} {% if is_team and not project.order %}

Upload design proof

Upload a customer-review proof. The customer must approve the latest version before quote approval.

{% csrf_token %}
{% endif %} {% if order_events %}

Order and production updates

{% for event in order_events %}
{{ event.title }}

{{ event.created_at|date:'d M Y H:i' }}

{% endfor %}
{% endif %} {% if shipments %}

Delivery tracking

{% for shipment in shipments %}

{{ shipment.tracking_number }} · {{ shipment.get_status_display }} · {{ shipment.carrier_name|default:shipment.courier }}

Open delivery journey{% endfor %}
{% endif %}
{% endblock %}