Segments (1252) Delete Previous Page 16 of 26 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) ✎ F128 F128KTS20 - KATSINA Default 11.92800 7.49357 Default 11.91675 7.66585 0.00 ✎ F128 F128KTS21 - KATSINA Default 11.91675 7.66585 Default 11.93115 7.82877 0.00 ✎ F128 F128KNS22 GANGARA KANO Default 11.93115 7.82877 Default 11.92295 7.89518 0.00 ✎ F128 F128KNS23 BUWANA KANO Default 11.92295 7.89518 Default 11.95635 8.11769 0.00 ✎ F128 F128KNS24 ZANGO KANO Default 11.95635 8.11769 Default 11.99837 8.34054 0.00 ✎ F128 F128KNS25 KANO 1 KANO Default 11.99837 8.34054 Default 12.01058 8.53168 0.00 ✎ F128 F128KNS26 KANO2 KANO Default 12.01058 8.53168 Default 12.05488 8.73339 0.00 ✎ F128 F128KNS27 MAWAMAWA KANO Default 12.05488 8.73339 Default 12.21606 8.93440 0.00 ✎ F128 F128JIS28 UNGUWAN ARI JIGAWA Default 12.21606 8.93440 Default 12.32070 9.09084 0.00 ✎ F128 F128JIS29 KAFIN KAYA JIGAWA Default 12.32070 9.09084 Default 12.49663 9.19002 0.00 ✎ F128 F128JIS30 DIGAWA JIGAWA Default 12.49663 9.19002 Default 12.61574 9.37238 0.00 ✎ F128 F128JIS31 MAIKEWALAFA JIGAWA Default 12.61574 9.37238 Default 12.60410 9.58544 0.00 ✎ F128 F128JIS32 ARBUCHASCO JIGAWA Default 12.60410 9.58544 Default 12.59426 9.80503 0.00 ✎ F128 F128JIS33 MAWADACHI JIGAWA Default 12.59426 9.80503 Default 12.48398 10.00182 0.00 ✎ F128 F128JIS34 HADEJIA JIGAWA Default 12.48398 10.00182 Default 12.58064 10.16213 0.00 ✎ F128 F128JIS35 KINKASAMA JIGAWA Default 12.58064 10.16213 Default 12.76979 10.24454 0.00 ✎ F128 F128JIS36 - JIGAWA Default 12.76979 10.24454 Default 12.83941 10.38944 0.00 ✎ F128 F128YOS37 YAMDUGU YOBE Default 12.83941 10.38944 Default 12.88488 10.64847 0.00 ✎ F128 F128YOS38 JAJIMARI YOBE Default 12.88488 10.64847 Default 12.89594 10.87832 0.00 ✎ F128 F128YOS39 GASHUA YOBE Default 12.89594 10.87832 Default 12.82214 11.07010 0.00 ✎ F128 F128YOS40 GARANDOILI YOBE Default 12.82214 11.07010 Default 12.79438 11.29489 0.00 ✎ F128 F128YOS41 BAIOMARI YOBE Default 12.79438 11.29489 Default 12.78248 11.53852 0.00 ✎ F128 F128YOS42 BEILE YOBE Default 12.78248 11.53852 Default 12.83145 11.75403 0.00 ✎ F128 F128YOS43 GEIDEM YOBE Default 12.83145 11.75403 Default 12.92490 11.93589 0.00 ✎ F128 F128YOS44 - YOBE Default 12.92490 11.93589 Default 13.09953 12.51155 0.00 ✎ F128 F128BOS45 - BORNO Default 13.09953 12.51155 Default 13.66790 13.33493 0.00 ✎ F128-1 F128-1JIS01 SHABARAWA KARAMA - Default 12.62110 9.38529 Default 12.80210 9.44451 0.00 ✎ F128-2 F128-2YOS01 BILERAM YOBE Default 12.86976 10.44905 Default 13.00035 10.25345 0.00 ✎ F128-2 F128-2YOS02 - YOBE Default 13.00035 10.25345 Default 13.13422 10.05234 0.00 ✎ F129 F129GMS01 Kwadon GOMBE - 10.28603 11.14085 - 10.27682 11.36233 24.94 ✎ F129 F129S01 Kwadon GOMBE Default 10.28603 11.14085 Default 10.27682 11.36233 0.00 ✎ F129 F129BNS02 Wuradole GOMBE/BORNO - 10.27682 11.36233 - 10.32744 11.57157 24.95 ✎ F129 F129S02 Wuradole GOMBE/BORNO Default 10.27682 11.36233 Default 10.31831 11.54526 0.00 ✎ F129 F129BNS03 Wuyo BORNO - 10.32744 11.57157 - 10.44904 11.75023 24.95 ✎ F129 F129S03 Wuyo BORNO Default 10.31831 11.54526 Default 10.44904 11.75023 0.00 ✎ F129 F129BNS04 Guwal BORNO - 10.44904 11.75023 - 10.55861 11.93941 24.95 ✎ F129 F129S04 Guwal BORNO Default 10.44904 11.75023 Default 10.55861 11.93941 0.00 ✎ F129 F129BNS05 Tum BORNO - 10.55861 11.93941 - 10.62005 12.14594 24.95 ✎ F129 F129S05 Tum BORNO Default 10.55861 11.93941 Default 10.62005 12.14594 0.00 ✎ F129 F129BNS06 Biu BORNO - 10.62005 12.14594 - 10.61633 12.19189 5.11 ✎ F129 F129S06 Biu BORNO Default 10.62005 12.14594 Default 10.61633 12.19189 0.00 ✎ F130 F130KNS01 Dutse KANO - 11.54209 9.31875 - 11.57842 9.32442 4.12 ✎ F130 F130JIS02 - JIGAWA - 11.57842 9.32442 - 11.74309 9.38111 20.84 ✎ F130 F130JIS03 Andaza JIGAWA - 11.74309 9.38111 - 11.78219 9.58210 24.95 ✎ F130 F130JIS04 Buzawa JIGAWA - 11.78219 9.58210 - 11.76599 9.63414 8.51 ✎ F130 F130BAS05 - BAUCHI - 11.76599 9.63414 - 11.72423 9.78794 18.55 ✎ F130 F130BAS06 Jamaare BAUCHI - 11.72423 9.78794 - 11.64706 9.99534 25.63 ✎ F130 F130BAS07 Azare BAUCHI - 11.64706 9.99534 - 11.67327 10.21790 30.82 ✎ F130 F130BAS08 Dargazu BAUCHI - 11.67327 10.21790 - 11.64301 10.43108 25.71 ✎ F130 F130BAS09 Bulkachuwa BAUCHI - 11.64301 10.43108 - 11.65948 10.65073 24.95 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.