Segments (1122) Delete Previous Page 9 of 23 Next All roads A F None All routes A1 A10 A11 A12 A121 A122 A123 A124 A125 A126 A13 A14 A2 A231 A232 A233 A234 A235 A236 A237 A3 A3-1 A342 A343 A344 A345 A4 A4-1 A4-2 A4-4 A4-5 A4-6 A4-7 A5 A5-1 A6 A7 A8 A8 (1) A9 E1 F100 F101 F101-1 F102 F103 F103-1 F104 F105 F106 F107 F108 F109 F110 F111 F112 F113 F114 F115 F116 F117 F118 F118-1 F119 F120 F121 F122 F123 F124 F124-1 F125 F126 F127 F128 F128-1 F128-2 F128-3 F129 F130 F131 F132 F133 F135 F136 F137 F138 F139 F200 F201 F202 F203 F204 F205 F206 F207 F208 F209 F210 F211 F212 F213 F214 F215 F216 F217 F218 F219 F220 F221 F222 F223 F224 F225 F226 F227 F228 F229 F230 F231 F232 F233 F234 F235 F236 F237 F238 F239 F240 F242 F243 F244 F245 F246 F247 F248 F249 F250 F251 F252 F252-1 F253 F254 F255 F255-1 F256 F257 F258 F259 F260 F261 Select state Abia Adamawa Akwa Ibom Anambra Bauchi Bayelsa Benue Borno Cross River Delta Ebonyi Edo Ekiti FCT Gombe Imo Jigawa Kaduna Kano Katsina Kebbi Kogi Kwara Lagos Nasarawa Niger Ogun Ondo Osun Oyo Plateau Rivers Sokoto Taraba Yobe Zamfara ☰ Route Segment code Name State Start name Northings Eastings End name Northings 2 Eastings 2 Distance(km) ✎ A4 A4CRS09 IKOM CROSS RIVER - 5.94561 8.61479 - 6.04246 8.69161 25.04 ✎ A4 A4CRS10 MGBAKA CROSS RIVER - 6.04246 8.69161 - 6.23722 8.64616 25.03 ✎ A4 A4CRS11 MAGHABE CROSS RIVER - 6.23722 8.64616 - 6.46493 8.73054 29.77 ✎ A4 A4CRS12 UKPE CROSS RIVER - 6.46493 8.73054 - 6.62552 8.80611 20.40 ✎ A4 A4CRS13 ABUOCHICIE CROSS RIVER/BENUE - 6.62552 8.80611 - 6.76961 8.99114 27.38 ✎ A4 A4BES14 VANDE IKYA BENUE - 6.76961 8.99114 - 6.87644 9.15153 22.72 ✎ A4 A4BES15 USHONGO BENUE - 6.87644 9.15153 - 7.04228 9.25869 27.20 ✎ A4 A4BES16 KATSINA ALA BENUE - 7.04228 9.25869 - 7.22267 9.36249 25.02 ✎ A4 A4BES17 AMAAFU BENUE - 7.22267 9.36249 - 7.38988 9.50367 24.88 ✎ A4 A4BES18 ZAKI BIAM BENUE - 7.38988 9.50367 - 7.54347 9.66125 24.94 ✎ A4 A4BES19 AKAA AKUNDO BENUE - 7.54347 9.66125 - 7.66726 9.73703 16.35 ✎ A4 A4TAS20 CHUNKU TARABA - 7.66726 9.73703 - 7.87622 9.77574 24.75 ✎ A4 A4TAS21 NWOHWA TARABA - 7.87622 9.77574 - 7.99142 9.96875 24.99 ✎ A4 A4TAS22 BANTAJI TARABA - 7.99142 9.96875 - 8.14164 10.12926 25.01 ✎ A4 A4TAS23 CHEDIYA TARABA - 8.14164 10.12926 - 8.22980 10.32621 25.00 ✎ A4 A4TAS24 KABIJ TARABA - 8.22980 10.32621 - 8.37613 10.49105 25.05 ✎ A4 A4TAS25 NDAMBAZAU TARABA - 8.37613 10.49105 - 8.53015 10.65246 24.96 ✎ A4 A4TAS26 GUNDUMA TARABA - 8.53015 10.65246 - 8.67875 10.81807 24.96 ✎ A4 A4TAS27 MUTUM MBIYU TARABA - 8.67875 10.81807 - 8.79676 11.00568 25.53 ✎ A4 A4TAS28 IWARE TARABA - 8.79676 11.00568 - 8.86309 11.21684 25.01 ✎ A4 A4TAS29 JAURO MIYA TARABA - 8.86309 11.21684 - 8.98607 11.39621 24.98 ✎ A4 A4TAS30 JUNLERI TARABA - 8.98607 11.39621 - 9.13236 11.54057 24.95 ✎ A4 A4TAS31 SAM GORO TARABA - 9.13236 11.54057 - 9.24212 11.67839 19.60 ✎ A4 A4ADS32 BALI ADAMAWA - 9.24212 11.67839 - 9.33925 11.86847 24.98 ✎ A4 A4ADS33 LAWARU ADAMAWA - 9.33925 11.86847 - 9.46833 12.03559 24.98 ✎ A4 A4ADS34 WURO WAZIRI ADAMAWA - 9.46833 12.03559 - 9.67963 11.96173 25.04 ✎ A4 A4ADS35 KVADEDA ADAMAWA - 9.67963 11.96173 - 9.90007 11.95532 24.99 ✎ A4 A4ADS36 MADA ADAMAWA - 9.90007 11.95532 - 10.03497 11.97018 15.26 ✎ A4 A4BOS37 - BORNO - 10.03497 11.97018 - 10.24522 11.97087 25.04 ✎ A4 A4BOS38 MILDA BORNO - 10.24522 11.97087 - 10.43031 12.04122 25.03 ✎ A4 A4BOS39 DAWOMA BORNO - 10.43031 12.04122 - 10.56570 12.16204 25.01 ✎ A4 A4BOS40 BIU BORNO - 10.56570 12.16204 - 10.72469 12.23753 103.36 ✎ A4 A4BOS41 NGUMA BORNO - 10.72469 12.23753 - 10.79455 12.41110 25.02 ✎ A4 A4BOS42 MUGZA BORNO - 10.79455 12.41110 - 10.95981 12.54600 24.98 ✎ A4 A4BOS43 AJIR BORNO - 10.95981 12.54600 - 11.10758 12.71609 25.03 ✎ A4 A4BOS44 DAMBOA BORNO - 11.10758 12.71609 - 11.28757 12.84505 25.02 ✎ A4 A4BOS45 BULABILIN BORNO - 11.28757 12.84505 - 11.47905 12.96368 25.02 ✎ A4 A4BOS46 TARTERI BORNO - 11.47905 12.96368 - 11.68274 13.05560 25.04 ✎ A4 A4BOS47 KANGADARI BORNO - 11.68274 13.05560 - 11.83392 13.11679 23.44 ✎ A4-1 A4-1AKS01 IBIAKU AKWA IBOM - 5.15981 7.74010 - 5.16570 7.94827 25.05 ✎ A4-1 A4-1AKS02 MBAK AKWA IBOM - 5.16570 7.94827 - 5.17819 8.06636 20.82 ✎ A4-1 A4-1CRS03 USUNG ESUK CROSS RIVER - 5.17819 8.06636 - 5.19248 8.27000 24.99 ✎ A4-1 A4-1CRS04 NJAHASANG CROSS RIVER - 5.19248 8.27000 - 5.15515 8.34641 10.09 ✎ A4-2 A4-2CRS01 CALABAR SOUTH CROSS RIVER - 4.97258 8.35149 - 5.01385 8.51355 25.02 ✎ A4-4 A4-4ADS01 YOLA ADAMAWA - 9.27798 12.42467 - 9.21229 12.46525 9.78 ✎ A4-5 A4-5ADS01 KADARBU ADAMAWA - 9.50189 12.57805 - 9.55604 12.78512 24.95 ✎ A4-5 A4-5ADS02 FARAN ADAMAWA - 9.55604 12.78512 - 9.57818 13.00164 24.99 ✎ A4-5 A4-5ADS03 JALINGO TARA ADAMAWA - 9.57818 13.00164 - 9.65839 13.22357 26.83 ✎ A4-6 A4-6ADS01 MUBI ADAMAWA - 10.31194 13.16273 - 10.26917 13.25300 12.71 ✎ A4-7 A4-7BOS01 DALORI BORNO - 11.84807 13.17319 - 11.70072 13.33420 24.96 Features Features and Workflows1) LandingFERMA-branded entry page.Navigation to Inventory, Motorability, Condition, Library, Engineering Admin.2) Road InventoryPrimary use case: route and segment inventory exploration.Main sectionsKPI strip above mapMap/table view sectionRight side cards:Segment summarySegment details with:Segment Identity tableSegment Characteristics tableCurrent behavior highlightsFilters are mutually exclusive in page logic (road OR route OR state).Route row selection loads details via AJAX endpoint:GET /road-inventory/route-details/?route=<route_code>Summary includes:RouteLength (sum of segment distances)Start point/End point derived from first/last segment by index orderingPasses through (Route.details)Number of segmentsStart/End display fallback chain for name:Address FK name -> Segment name -> Segment state -> -Point display format:Name (Lat, Lon) with fixed decimal precision3) Road MotorabilityPrimary use case: evaluate motorability performance and segment status distribution.Main sectionsKPI strip (length/routes/segments/no data)Status KPI strip (Good/Tolerable/Intolerable/Failed)Map/table viewRight side cards:Motorability summarySegments under investigation or repairInvestigation/repair table behaviorOne row per segmentFilter-aware (uses page filter context)Source: Defect records where workflow status is not repair_completeColumns:Segment (segment code)Status (human-readable workflow status)Sort order:Segment index/code ordering4) Road ConditionPrimary use case: operate on sub-segment condition records and create draft defect records.Key endpointsPOST /road-condition/save-draft/GET /road-condition/subsegments/?segment=<code>BehaviorCreates defect drafts only for eligible sub-segments.Prevents duplicate active records per sub-segment.Left-side filter uses Route and Condition instead of State.Speed-vs-distance graph auto-loads the first segment returned by the active filter.If the current filter returns no segments, the page shows No segments found for the selected filter.Segment ordering uses:parent routesegment trailing two-digit suffix (numeric)id tie-breakerSub-segment ordering uses:parent routeparent segment trailing two-digit suffix (numeric)parent segment idsub-segment trailing suffix (numeric)id tie-breaker5) LibrarySections:Road inventoryReportsTechnical guideUser guideNotes:Shared page title behavior implemented as Library across sections.Technical and user guides are rendered via shared guide template logic.Road inventory interactionsSegment rows no longer open the editor directly.A compact edit icon beside each segment checkbox opens the segment edit modal.Clicking a segment row expands it inline as an accordion.Only one segment can stay expanded at a time.Expanded segment rows load sub-segments on demand.Inline sub-segment workspaceExpanded sub-segment tables show:checkboxedit iconsub-segment codestart pointend pointdistanceThe inline sub-segment edit modal currently updates:start pointend pointSub-segment distance remains visible in the table but is read-only in the modal.Selecting sub-segments reveals a local Delete action above the expanded sub-segment table.Confirmed delete removes the selected sub-segments and then renumbers the remaining rows so codes stay contiguous.Data hygiene and constraintsSegment codes are standardized to end in two digits.Segment code max length is now 16 characters.Shared list ordering ignores the middle portion of the code and prioritizes route plus the final two-digit suffix.Duplicate sub-segment imports are collapsed during upload so repeated coordinate/data rows are not created.Sub-segment position ceiling is now 35, with duplicate-cleanup and renumbering support in the migration path.6) Engineering AdminWorkflow tabs/pages:Root Cause AnalysisPhysical InspectionSolution DesignApprovalsOverview/History variantsWorkflow progression (conceptual)draft -> rca -> physical_inspection -> solution_design -> approved/rejected -> repair_ongoing -> repair_completeRecent UI updatePriority controls/labels removed from Approvals and engineering-admin summary tables.Top navigation is fixed site-wide.Library and Engineering left navigation panes are fixed on desktop and scroll independently from the main content area.7) Data import/sync utilitiesRoute details sync commandCommand: python manage.py sync_route_detailsReads route lines from template source and updates Route.details.Supports dry run and apply mode.Segment refresh services/tasksQueue refresh endpoint and Celery task for updating distances/speeds/status from Google API. Uploads Download template Select file (.xls, .xlsx, .csv) Begin Upload Uploading, please wait... Upload summary Download error CSV
Features and Workflows1) LandingFERMA-branded entry page.Navigation to Inventory, Motorability, Condition, Library, Engineering Admin.2) Road InventoryPrimary use case: route and segment inventory exploration.Main sectionsKPI strip above mapMap/table view sectionRight side cards:Segment summarySegment details with:Segment Identity tableSegment Characteristics tableCurrent behavior highlightsFilters are mutually exclusive in page logic (road OR route OR state).Route row selection loads details via AJAX endpoint:GET /road-inventory/route-details/?route=<route_code>Summary includes:RouteLength (sum of segment distances)Start point/End point derived from first/last segment by index orderingPasses through (Route.details)Number of segmentsStart/End display fallback chain for name:Address FK name -> Segment name -> Segment state -> -Point display format:Name (Lat, Lon) with fixed decimal precision3) Road MotorabilityPrimary use case: evaluate motorability performance and segment status distribution.Main sectionsKPI strip (length/routes/segments/no data)Status KPI strip (Good/Tolerable/Intolerable/Failed)Map/table viewRight side cards:Motorability summarySegments under investigation or repairInvestigation/repair table behaviorOne row per segmentFilter-aware (uses page filter context)Source: Defect records where workflow status is not repair_completeColumns:Segment (segment code)Status (human-readable workflow status)Sort order:Segment index/code ordering4) Road ConditionPrimary use case: operate on sub-segment condition records and create draft defect records.Key endpointsPOST /road-condition/save-draft/GET /road-condition/subsegments/?segment=<code>BehaviorCreates defect drafts only for eligible sub-segments.Prevents duplicate active records per sub-segment.Left-side filter uses Route and Condition instead of State.Speed-vs-distance graph auto-loads the first segment returned by the active filter.If the current filter returns no segments, the page shows No segments found for the selected filter.Segment ordering uses:parent routesegment trailing two-digit suffix (numeric)id tie-breakerSub-segment ordering uses:parent routeparent segment trailing two-digit suffix (numeric)parent segment idsub-segment trailing suffix (numeric)id tie-breaker5) LibrarySections:Road inventoryReportsTechnical guideUser guideNotes:Shared page title behavior implemented as Library across sections.Technical and user guides are rendered via shared guide template logic.Road inventory interactionsSegment rows no longer open the editor directly.A compact edit icon beside each segment checkbox opens the segment edit modal.Clicking a segment row expands it inline as an accordion.Only one segment can stay expanded at a time.Expanded segment rows load sub-segments on demand.Inline sub-segment workspaceExpanded sub-segment tables show:checkboxedit iconsub-segment codestart pointend pointdistanceThe inline sub-segment edit modal currently updates:start pointend pointSub-segment distance remains visible in the table but is read-only in the modal.Selecting sub-segments reveals a local Delete action above the expanded sub-segment table.Confirmed delete removes the selected sub-segments and then renumbers the remaining rows so codes stay contiguous.Data hygiene and constraintsSegment codes are standardized to end in two digits.Segment code max length is now 16 characters.Shared list ordering ignores the middle portion of the code and prioritizes route plus the final two-digit suffix.Duplicate sub-segment imports are collapsed during upload so repeated coordinate/data rows are not created.Sub-segment position ceiling is now 35, with duplicate-cleanup and renumbering support in the migration path.6) Engineering AdminWorkflow tabs/pages:Root Cause AnalysisPhysical InspectionSolution DesignApprovalsOverview/History variantsWorkflow progression (conceptual)draft -> rca -> physical_inspection -> solution_design -> approved/rejected -> repair_ongoing -> repair_completeRecent UI updatePriority controls/labels removed from Approvals and engineering-admin summary tables.Top navigation is fixed site-wide.Library and Engineering left navigation panes are fixed on desktop and scroll independently from the main content area.7) Data import/sync utilitiesRoute details sync commandCommand: python manage.py sync_route_detailsReads route lines from template source and updates Route.details.Supports dry run and apply mode.Segment refresh services/tasksQueue refresh endpoint and Celery task for updating distances/speeds/status from Google API.