Segments (1122) Delete Previous Page 22 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) ✎ F247 F247PLS06 LAKUSA TAPO PLATAEU - 9.52161 9.01866 - 9.62923 8.89322 25.05 ✎ F247 F247PLS07 ECKWA CHURCH VWEI PLATAEU - 9.62923 8.89322 - 9.72101 8.86631 11.48 ✎ F248 F248BAS01 YANA BAUCHI - 11.40757 10.01337 - 11.59560 10.11917 25.04 ✎ F248 F248BAS02 AZARE BAUCHI - 11.59560 10.11917 - 11.67478 10.18826 11.84 ✎ F249 F249BAS01 AZARE BAUCHI - 11.67501 10.19185 - 11.89074 10.18588 25.06 ✎ F249 F249BAS02 FUCHUKWA PRIMARY SCHOOL BAUCHI - 11.89074 10.18588 - 12.09171 10.26984 25.05 ✎ F249 F249BAS03 ASABSIN GLOBAL SERVICES BAUCHI - 12.09171 10.26984 - 12.26927 10.37329 23.65 ✎ F250 F250TAS01 BARADI TARABA - 9.01056 11.42163 - 9.19103 11.30851 25.00 ✎ F250 F250TAS02 LAU TARABA - 9.19103 11.30851 - 9.31529 11.19185 231.93 ✎ F250 F250TAS03 GAMJI TARABA - 9.31529 11.19185 - 9.36353 11.01892 24.30 ✎ F250 F250TAS04 GANGAN BALASSA TARABA - 9.36353 11.01892 - 9.43305 10.97360 263.79 ✎ F250 F250TAS05 - TARABA - 9.43305 10.97360 - 9.55569 11.00367 19.24 ✎ F250 F250GOS06 SENGE GOMBE - 9.55569 11.00367 - 9.68392 11.13250 26.59 ✎ F250 F250GOS07 KONGO GOMBE - 9.68392 11.13250 - 9.88398 11.20185 25.26 ✎ F250 F250GOS08 BILIRI GOMBE - 9.88398 11.20185 - 9.91262 11.21645 4.04 ✎ F251 F251GOS01 GOMBE GOMBE - 10.28605 11.14067 - 10.45619 11.25825 25.03 ✎ F251 F251GOS02 AZUME GOMBE - 10.45619 11.25825 - 10.62880 11.37133 25.38 ✎ F251 F251GOS03 TONGO GOMBE - 10.62880 11.37133 - 10.81921 11.42630 24.77 ✎ F251 F251GOS04 BAJOGA GOMBE - 10.81921 11.42630 - 10.98723 11.32856 24.91 ✎ F251 F251GOS05 - GOMBE - 10.98723 11.32856 - 11.11082 11.37506 15.33 ✎ F251 F251YOS06 NGADA YOBE - 11.11082 11.37506 - 11.19117 11.34448 9.79 ✎ F251 F251YOS07 - YOBE - 11.19117 11.34448 - 11.40225 11.28717 25.28 ✎ F251 F251YOS08 MAIDUWA YOBE - 11.40225 11.28717 - 11.56930 11.15585 24.34 ✎ F251 F251YOS09 DAMSHI YOBE - 11.56930 11.15585 - 11.70054 11.07345 17.46 ✎ F253 F253ADS01 BALHANA ADAMAWA - 10.15117 12.73690 - 10.33143 12.65862 25.25 ✎ F253 F253ADS02 - ADAMAWA - 10.33143 12.65862 - 10.38249 12.56987 13.09 ✎ F253 F253BOS03 KURUKURU BORNO - 10.33143 12.65862 - 10.43835 12.48653 25.32 ✎ F253 F253BOS04 SHINDIFU BORNO - 10.43835 12.48653 - 10.52524 12.29868 25.00 ✎ F253 F253BOS05 BIU BORNO - 10.52524 12.29868 - 10.66955 12.16156 26.00 ✎ F253 F253BOS06 MANGADA BORNO - 10.66955 12.16156 - 10.88364 12.10707 25.03 ✎ F253 F253BOS07 - BORNO - 10.88364 12.10707 - 11.04957 12.05175 19.84 ✎ F253 F253YOS08 BUNI YADI YOBE - 11.04957 12.05175 - 11.26245 12.00780 44.50 ✎ F253 F253YOS09 - YOBE - 11.26245 12.00780 - 11.52198 11.92863 30.50 ✎ F253 F253YOS10 GUJBA YOBE - 11.52198 11.92863 - 11.73735 11.96075 24.99 ✎ F253 F253YOS11 DAMATURU YOBE - 11.73735 11.96075 - 11.93033 11.85779 25.60 ✎ F253 F253YOS12 JELAWA YOBE - 11.93033 11.85779 - 12.13962 11.77723 24.99 ✎ F253 F253YOS13 BANRI YOBE - 12.13962 11.77723 - 12.33072 11.67108 24.95 ✎ F253 F253YOS14 LANTENA YOBE - 12.33072 11.67108 - 12.48925 11.51163 25.03 ✎ F253 F253YOS15 DAPCHI YOBE - 12.48925 11.51163 - 12.76612 11.50735 31.83 ✎ F254 F254BOS01 KOMBI BORNO - 11.14925 12.75674 - 10.95502 12.80104 24.95 ✎ F254 F254BOS02 BILA NKEKI BORNO - 10.95502 12.80104 - 10.75428 12.88328 24.95 ✎ F254 F254BOS03 ZADAWA YAMA BORNO - 10.75428 12.88328 - 10.60597 13.00778 24.95 ✎ F254 F254BOS04 KOMSUWA DAM BORNO - 10.60597 13.00778 - 10.48050 13.18962 24.95 ✎ F254 F254BOS05 UBA BORNO - 10.48050 13.18962 - 10.45586 13.21992 4.39 ✎ F255 F255ADS01 NJODDOMO ADAMAWA - 9.74931 13.24741 - 9.94130 13.22968 25.00 ✎ F255 F255ADS02 JALINGO MAIHA ADAMAWA - 9.94130 13.22968 - 10.13620 13.21955 24.94 ✎ F255 F255ADS03 MUBI ADAMAWA - 10.13620 13.21955 - 10.26913 13.25306 16.07 ✎ F256 F256BOS01 GABCHARI MALLUM ABACHARI BORNO - 11.90872 13.09711 - 12.03038 12.91820 28.28 ✎ F256 F256BOS02 CHINGOWA LAWANTI BORNO - 12.03038 12.91820 - 12.19810 12.77926 25.24 ✎ F256 F256BOS03 KULIMARI BORNO - 12.19810 12.77926 - 12.41356 12.79963 25.06 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.