@import ru.yandex.tours.geo.partners.PartnerRegion
@import ru.yandex.tours.geo.base.Region
@import ru.yandex.tours.geo.matching.Hypothesis
@import ru.yandex.tours.geo.matching.HypothesesHolder
@(partnerRegion: PartnerRegion, yandexRegion: Option[Region], mappedRegion: Option[Region], mapping: Map[String, Int], hypotheses: HypothesesHolder)(implicit req: RequestHeader)
@yandexNameWithId(geoId: Int) = {
@views.Utils.regionName(geoId) (@geoId)
}
@partnerNameWithId(partnerId: Option[String]) = {
@for(id <- partnerId) {
@views.Utils.partnerTrees.get(partnerRegion.partner).flatMap(_.region(id)).map(_.getName).getOrElse("") (@id)
}
}
@dlElem(name: Html)(value: Html) = {
@partners.partner_region_selector("view_with_partner_region", partnerRegion.partner.toString)
@partners.partner_region_tree(partnerRegion, mapping, hypotheses)(partnerRegion => routes.PartnerRegionsController.get(partnerRegion.partner.toString, partnerRegion.id))
@defining(hypotheses.byPartnerRegion(partnerRegion)) { hyps =>
@defining(yandexRegion.flatMap(hypotheses.findHypothesis(partnerRegion, _).map(_.confidence))) { confidence =>
@partnerRegionPanel(partnerRegion, "primary", confidence)
}
@for(yaRegion <- yandexRegion) {
@defining(hypotheses.byYandexRegion(yaRegion, partnerRegion.partner).filter(_.partnerRegion != partnerRegion)) { partnerAlternatives =>
@if(partnerAlternatives.nonEmpty){
@for(hyp <- partnerAlternatives) {
@partnerRegionPanel(hyp.partnerRegion, "info", Some(hyp.confidence))
}
}}}
@for(mRegion <- mappedRegion) {
@yandexRegionBlock(mRegion, "primary", hyps.find(_.yandexRegion == mRegion).map(_.confidence))
}
@if(yandexRegion.nonEmpty) {
@if(!mappedRegion.contains(yandexRegion.get)) {
@if(!hyps.exists(_.yandexRegion == yandexRegion.get)) {
@yandexRegionBlock(yandexRegion.get, "default")
}}}
@for(hyp <- hyps) {
@if(!mappedRegion.contains(hyp.yandexRegion)) {
@yandexRegionBlock(hyp.yandexRegion, if(mappedRegion.contains(hyp.yandexRegion)) {"primary"} else {"info"}, Some(hyp.confidence))
}}
}
@util.region_selector("view_with_yandex_region")
@common.region_tree(yandexRegion, all = true)(region => routes.PartnerRegionsController.view(partnerRegion.partner.toString, partnerRegion.id, region.id))
}