From 02a7d42a5bdc5e0cc71444f3d4c51d371ae82437 Mon Sep 17 00:00:00 2001 From: phl0 Date: Fri, 13 Feb 2026 08:26:27 +0100 Subject: [PATCH 01/10] Add SAT to timeline results for satellite awards --- application/models/Timeline_model.php | 27 +++++++++++++++++++-------- application/views/timeline/index.php | 16 +++++++++++----- 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/application/models/Timeline_model.php b/application/models/Timeline_model.php index ed0df9ef9..e5b4738d8 100644 --- a/application/models/Timeline_model.php +++ b/application/models/Timeline_model.php @@ -369,7 +369,8 @@ class Timeline_model extends CI_Model { foreach ($col_gridsquare as $grid) { $timeline[] = array( 'gridsquare' => $grid->gridsquare, - 'date' => $grid->date); + 'date' => $grid->date, + 'sat_name' => $grid->sat_name ?? ''); } $col_vucc_grids = $this->get_vucc_grids($band, $mode, $propmode, $location_list, $qsl, $lotw, $eqsl, $clublog, $year, $qrz, $onlynew); @@ -383,7 +384,8 @@ class Timeline_model extends CI_Model { // Doesn't exist, add new entry $timeline[] = array( 'gridsquare' => $grid_four, - 'date' => $gridSplit->date + 'date' => $gridSplit->date, + 'sat_name' => $gridSplit->sat_name ?? '' ); } else { // Exists, check the date @@ -403,8 +405,11 @@ class Timeline_model extends CI_Model { public function get_gridsquare($band, $mode, $propmode, $location_list, $qsl, $lotw, $eqsl, $clublog, $year, $qrz, $onlynew) { $binding = []; - $sql = "select min(COL_TIME_ON) date, upper(substring(col_gridsquare, 1, 4)) gridsquare from " - .$this->config->item('table_name'). " thcv + $sql = "select min(COL_TIME_ON) date, upper(substring(col_gridsquare, 1, 4)) gridsquare "; + if ($propmode == 'SAT') { + $sql .= ", COL_SAT_NAME as sat_name "; + } + $sql .= "from ".$this->config->item('table_name'). " thcv where station_id in (" . $location_list . ")"; if ($band == 'SAT') { // Left for compatibility reasons @@ -440,8 +445,11 @@ class Timeline_model extends CI_Model { $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl, $clublog, $qrz); - $sql .= " and col_gridsquare <> '' group by upper(substring(col_gridsquare, 1, 4)) - order by date desc"; + $sql .= " and col_gridsquare <> '' group by upper(substring(col_gridsquare, 1, 4)) "; + if ($propmode == 'SAT') { + $sql .= ", sat_name "; + } + $sql .= "order by date desc"; $query = $this->db->query($sql, $binding); @@ -450,8 +458,11 @@ class Timeline_model extends CI_Model { public function get_vucc_grids($band, $mode, $propmode, $location_list, $qsl, $lotw, $eqsl, $clublog, $year, $qrz, $onlynew) { $binding = []; - $sql = "select COL_TIME_ON as date, upper(col_vucc_grids) gridsquare from " - .$this->config->item('table_name'). " thcv + $sql = "select COL_TIME_ON as date, upper(col_vucc_grids) gridsquare "; + if ($propmode == 'SAT') { + $sql .= ", COL_SAT_NAME as sat_name "; + } + $sql .= "from ".$this->config->item('table_name'). " thcv where station_id in (" . $location_list . ")"; if ($band == 'SAT') { // Left for compatibility reasons diff --git a/application/views/timeline/index.php b/application/views/timeline/index.php index 2484a10c3..a85d03bca 100644 --- a/application/views/timeline/index.php +++ b/application/views/timeline/index.php @@ -343,7 +343,7 @@ function write_waz_timeline($timeline_array, $custom_date_format, $bandselect, $ echo ''; } -function write_vucc_timeline($timeline_array, $custom_date_format, $bandselect, $modeselect, $propmode,$award, $selectedyear, $onlynew) { +function write_vucc_timeline($timeline_array, $custom_date_format, $bandselect, $modeselect, $propmode, $award, $selectedyear, $onlynew) { // Apply filtering to the timeline array $filtered_timeline = filter_timeline_array_vucc($timeline_array, $selectedyear, $onlynew); $i = count($filtered_timeline); // General counter for all entries @@ -353,8 +353,11 @@ function write_vucc_timeline($timeline_array, $custom_date_format, $bandselect, # '.__("Date").' '.__("Time").' - '.__("Gridsquare").' - '.__("Show QSOs").' + '.__("Gridsquare").''; + if ($propmode == 'SAT') { + echo ' '.__("Satellite").''; + } + echo ' '.__("Show QSOs").' '; @@ -366,8 +369,11 @@ function write_vucc_timeline($timeline_array, $custom_date_format, $bandselect, ' . $i-- . ' ' . date($custom_date_format, $date_as_timestamp) . ' ' . date('H:i', $date_as_timestamp) . ' - ' . $line['gridsquare'] . ' - '.__("Show").' + ' . $line['gridsquare'] . ''; + if ($propmode == 'SAT') { + echo ''.$line['sat_name'].''; + } + echo ' '.__("Show").' '; } echo ''; From 85d9a736c60b3d9d91155e1549054fda722020d4 Mon Sep 17 00:00:00 2001 From: phl0 Date: Thu, 19 Feb 2026 12:38:44 +0100 Subject: [PATCH 02/10] Adjust SQL query for grids --- application/models/Timeline_model.php | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/application/models/Timeline_model.php b/application/models/Timeline_model.php index e5b4738d8..990982d00 100644 --- a/application/models/Timeline_model.php +++ b/application/models/Timeline_model.php @@ -405,12 +405,12 @@ class Timeline_model extends CI_Model { public function get_gridsquare($band, $mode, $propmode, $location_list, $qsl, $lotw, $eqsl, $clublog, $year, $qrz, $onlynew) { $binding = []; - $sql = "select min(COL_TIME_ON) date, upper(substring(col_gridsquare, 1, 4)) gridsquare "; - if ($propmode == 'SAT') { - $sql .= ", COL_SAT_NAME as sat_name "; - } - $sql .= "from ".$this->config->item('table_name'). " thcv - where station_id in (" . $location_list . ")"; + $sql = "SELECT * FROM ("; + $sql .= "SELECT COL_TIME_ON AS date, upper(substring(COL_GRIDSQUARE, 1, 4)) AS gridsquare, "; + $sql .= "COL_SAT_NAME AS sat_name, "; + $sql .= "ROW_NUMBER() OVER (PARTITION BY upper(substring(COL_GRIDSQUARE, 1, 4)) ORDER BY COL_TIME_ON ASC) AS rn "; + $sql .= "FROM ".$this->config->item('table_name'). " thcv + WHERE station_id IN (" . $location_list . ")"; if ($band == 'SAT') { // Left for compatibility reasons $sql .= " and col_prop_mode = ?"; @@ -445,11 +445,10 @@ class Timeline_model extends CI_Model { $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl, $clublog, $qrz); - $sql .= " and col_gridsquare <> '' group by upper(substring(col_gridsquare, 1, 4)) "; - if ($propmode == 'SAT') { - $sql .= ", sat_name "; - } - $sql .= "order by date desc"; + $sql .= " and col_gridsquare <> ''"; + $sql .= ") ranked "; + $sql .= "WHERE rn = 1 "; + $sql .= "ORDER BY date DESC;"; $query = $this->db->query($sql, $binding); From ade684b570256967fe7fc42b7341019cf813a2db Mon Sep 17 00:00:00 2001 From: phl0 Date: Thu, 19 Feb 2026 12:52:59 +0100 Subject: [PATCH 03/10] Adjust SQL query for VUCC grids --- application/models/Timeline_model.php | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/application/models/Timeline_model.php b/application/models/Timeline_model.php index 990982d00..37847cc32 100644 --- a/application/models/Timeline_model.php +++ b/application/models/Timeline_model.php @@ -445,7 +445,7 @@ class Timeline_model extends CI_Model { $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl, $clublog, $qrz); - $sql .= " and col_gridsquare <> ''"; + $sql .= " AND COL_GRIDSQUARE <> ''"; $sql .= ") ranked "; $sql .= "WHERE rn = 1 "; $sql .= "ORDER BY date DESC;"; @@ -457,12 +457,12 @@ class Timeline_model extends CI_Model { public function get_vucc_grids($band, $mode, $propmode, $location_list, $qsl, $lotw, $eqsl, $clublog, $year, $qrz, $onlynew) { $binding = []; - $sql = "select COL_TIME_ON as date, upper(col_vucc_grids) gridsquare "; - if ($propmode == 'SAT') { - $sql .= ", COL_SAT_NAME as sat_name "; - } - $sql .= "from ".$this->config->item('table_name'). " thcv - where station_id in (" . $location_list . ")"; + $sql = "SELECT * FROM ("; + $sql .= "SELECT COL_TIME_ON AS date, upper(COL_VUCC_GRIDS) AS gridsquare, "; + $sql .= "COL_SAT_NAME AS sat_name, "; + $sql .= "ROW_NUMBER() OVER (PARTITION BY upper(COL_VUCC_GRIDS) ORDER BY COL_TIME_ON ASC) AS rn "; + $sql .= "FROM ".$this->config->item('table_name'). " thcv + WHERE station_id IN (" . $location_list . ")"; if ($band == 'SAT') { // Left for compatibility reasons $sql .= " and col_prop_mode = ?"; @@ -497,7 +497,10 @@ class Timeline_model extends CI_Model { $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl, $clublog, $qrz); - $sql .= " and col_vucc_grids <> ''"; + $sql .= " AND COL_VUCC_GRIDS <> ''"; + $sql .= ") ranked "; + $sql .= "WHERE rn = 1 "; + $sql .= "ORDER BY date DESC;"; $query = $this->db->query($sql, $binding); return $query->result(); From 8079b7200e9cc0d863b560641765710e003380d6 Mon Sep 17 00:00:00 2001 From: phl0 Date: Thu, 19 Feb 2026 13:28:48 +0100 Subject: [PATCH 04/10] Add SAT to DXCC award timeline --- application/models/Timeline_model.php | 12 ++++++++---- application/views/timeline/index.php | 14 ++++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/application/models/Timeline_model.php b/application/models/Timeline_model.php index 37847cc32..17ade45e4 100644 --- a/application/models/Timeline_model.php +++ b/application/models/Timeline_model.php @@ -26,8 +26,11 @@ class Timeline_model extends CI_Model { public function get_timeline_dxcc($band, $mode, $propmode, $location_list, $qsl, $lotw, $eqsl, $clublog, $year, $qrz, $onlynew) { $binding = []; - $sql = "select min(date(COL_TIME_ON)) date, prefix, dxcc_entities.name as dxcc_name, end, adif from " - .$this->config->item('table_name'). " thcv + $sql = "SELECT * FROM ("; + $sql .= "SELECT COL_TIME_ON AS date, prefix, dxcc_entities.name as dxcc_name, end, adif, "; + $sql .= "COL_SAT_NAME AS sat_name, "; + $sql .= "ROW_NUMBER() OVER (PARTITION BY adif ORDER BY COL_TIME_ON ASC) AS rn "; + $sql .= "FROM ".$this->config->item('table_name'). " thcv join dxcc_entities on thcv.col_dxcc = dxcc_entities.adif where station_id in (" . $location_list . ") and col_dxcc > 0 "; @@ -64,8 +67,9 @@ class Timeline_model extends CI_Model { $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl, $clublog, $qrz); - $sql .= " group by col_dxcc - order by date desc"; + $sql .= ") ranked "; + $sql .= "WHERE rn = 1 "; + $sql .= "ORDER BY date DESC;"; $query = $this->db->query($sql, $binding); return $query->result(); diff --git a/application/views/timeline/index.php b/application/views/timeline/index.php index a85d03bca..f73d61465 100644 --- a/application/views/timeline/index.php +++ b/application/views/timeline/index.php @@ -197,8 +197,11 @@ function write_dxcc_timeline($timeline_array, $custom_date_format, $bandselect, # ' . __("Date") . ' ' . __("Prefix") . ' - ' . __("Country") . ' - ' . __("Status") . ' + ' . __("Country") . ''; + if ($propmode == 'SAT') { + echo ' '.__("Satellite").''; + } + echo ' ' . __("Status") . ' ' . __("End Date") . ' ' . __("Show QSOs") . ' @@ -211,8 +214,11 @@ function write_dxcc_timeline($timeline_array, $custom_date_format, $bandselect, ' . $i-- . ' ' . date($custom_date_format, $date_as_timestamp) . ' ' . $line->prefix . ' - ' . ucwords(strtolower($line->dxcc_name)) . ' - '; + ' . ucwords(strtolower($line->dxcc_name)) . ''; + if ($propmode == 'SAT') { + echo ''.$line->sat_name.''; + } + echo ' '; if (!empty($line->end)) echo '' . __("Deleted DXCC") . ''; echo ' ' . $line->end . ' From df5e80d7064e4d6852a4f228f1e1ff0b1d3d726e Mon Sep 17 00:00:00 2001 From: phl0 Date: Thu, 19 Feb 2026 14:18:18 +0100 Subject: [PATCH 05/10] Also show SAT if All is selected as band (includes prop mode SAT) --- application/views/timeline/index.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/application/views/timeline/index.php b/application/views/timeline/index.php index f73d61465..1e2f2b1ea 100644 --- a/application/views/timeline/index.php +++ b/application/views/timeline/index.php @@ -198,7 +198,7 @@ function write_dxcc_timeline($timeline_array, $custom_date_format, $bandselect, ' . __("Date") . ' ' . __("Prefix") . ' ' . __("Country") . ''; - if ($propmode == 'SAT') { + if ($propmode == 'SAT' || $propmode == 'All') { echo ' '.__("Satellite").''; } echo ' ' . __("Status") . ' @@ -215,7 +215,7 @@ function write_dxcc_timeline($timeline_array, $custom_date_format, $bandselect, ' . date($custom_date_format, $date_as_timestamp) . ' ' . $line->prefix . ' ' . ucwords(strtolower($line->dxcc_name)) . ''; - if ($propmode == 'SAT') { + if ($propmode == 'SAT' || $propmode == 'All') { echo ''.$line->sat_name.''; } echo ' '; @@ -360,7 +360,7 @@ function write_vucc_timeline($timeline_array, $custom_date_format, $bandselect, '.__("Date").' '.__("Time").' '.__("Gridsquare").''; - if ($propmode == 'SAT') { + if ($propmode == 'SAT' || $propmode == 'All') { echo ' '.__("Satellite").''; } echo ' '.__("Show QSOs").' @@ -376,7 +376,7 @@ function write_vucc_timeline($timeline_array, $custom_date_format, $bandselect, ' . date($custom_date_format, $date_as_timestamp) . ' ' . date('H:i', $date_as_timestamp) . ' ' . $line['gridsquare'] . ''; - if ($propmode == 'SAT') { + if ($propmode == 'SAT' || $propmode == 'All') { echo ''.$line['sat_name'].''; } echo ' '.__("Show").' From ec0396b7368a4b7ab0f62e07fcf47cf5478a4ce8 Mon Sep 17 00:00:00 2001 From: phl0 Date: Thu, 19 Feb 2026 14:28:06 +0100 Subject: [PATCH 06/10] Add satellite to WAS timeline --- application/models/Timeline_model.php | 12 ++++++++---- application/views/timeline/index.php | 14 ++++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/application/models/Timeline_model.php b/application/models/Timeline_model.php index 17ade45e4..e2f2bc58b 100644 --- a/application/models/Timeline_model.php +++ b/application/models/Timeline_model.php @@ -127,8 +127,11 @@ class Timeline_model extends CI_Model { public function get_timeline_was($band, $mode, $propmode, $location_list, $qsl, $lotw, $eqsl, $clublog, $year, $qrz, $onlynew) { $binding = []; - $sql = "select min(date(COL_TIME_ON)) date, col_state from " - .$this->config->item('table_name'). " thcv + $sql = "SELECT * FROM ("; + $sql .= "SELECT COL_TIME_ON AS date, col_state, "; + $sql .= "COL_SAT_NAME AS sat_name, "; + $sql .= "ROW_NUMBER() OVER (PARTITION BY COL_STATE ORDER BY COL_TIME_ON ASC) AS rn "; + $sql .= "FROM ".$this->config->item('table_name'). " thcv where station_id in (" . $location_list . ")"; if ($band == 'SAT') { // Left for compatibility reasons @@ -167,8 +170,9 @@ class Timeline_model extends CI_Model { $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl, $clublog, $qrz); - $sql .= " group by col_state - order by date desc"; + $sql .= ") ranked "; + $sql .= "WHERE rn = 1 "; + $sql .= "ORDER BY date DESC;"; $query = $this->db->query($sql, $binding); diff --git a/application/views/timeline/index.php b/application/views/timeline/index.php index 1e2f2b1ea..c58a85e86 100644 --- a/application/views/timeline/index.php +++ b/application/views/timeline/index.php @@ -268,8 +268,11 @@ function write_was_timeline($timeline_array, $custom_date_format, $bandselect, $ # ' . __("Date") . ' - ' . __("State") . ' - ' . __("Show QSOs") . ' + ' . __("State") . ''; + if ($propmode == 'SAT' || $propmode == 'All') { + echo ' '.__("Satellite").''; + } + echo ' ' . __("Show QSOs") . ' '; @@ -280,8 +283,11 @@ function write_was_timeline($timeline_array, $custom_date_format, $bandselect, $ echo ' ' . $i-- . ' ' . date($custom_date_format, $date_as_timestamp) . ' - ' . $line->col_state . ' - col_state . '","' . $bandselect . '","' . $modeselect . '","' . $propmode . '","' . $award .'")>' . __("Show") . ' + ' . $line->col_state . ''; + if ($propmode == 'SAT' || $propmode == 'All') { + echo '' . $line->sat_name . ''; + } + echo ' col_state . '","' . $bandselect . '","' . $modeselect . '","' . $propmode . '","' . $award .'")>' . __("Show") . ' '; } echo ''; From 3d07d6bff6c4ca84630dd26cb102c743a7ca4e9f Mon Sep 17 00:00:00 2001 From: phl0 Date: Thu, 19 Feb 2026 14:39:16 +0100 Subject: [PATCH 07/10] Add SAT to WAZ timeline --- application/models/Timeline_model.php | 13 +++++++++---- application/views/timeline/index.php | 14 ++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/application/models/Timeline_model.php b/application/models/Timeline_model.php index e2f2bc58b..0a8f03992 100644 --- a/application/models/Timeline_model.php +++ b/application/models/Timeline_model.php @@ -230,8 +230,11 @@ class Timeline_model extends CI_Model { public function get_timeline_waz($band, $mode, $propmode, $location_list, $qsl, $lotw, $eqsl, $clublog, $year, $qrz, $onlynew) { $binding = []; - $sql = "select min(date(COL_TIME_ON)) date, col_cqz from " - .$this->config->item('table_name'). " thcv + $sql = "SELECT * FROM ("; + $sql .= "SELECT COL_TIME_ON AS date, col_cqz, "; + $sql .= "COL_SAT_NAME AS sat_name, "; + $sql .= "ROW_NUMBER() OVER (PARTITION BY col_cqz ORDER BY COL_TIME_ON ASC) AS rn "; + $sql .= "FROM ".$this->config->item('table_name'). " thcv where station_id in (" . $location_list . ")"; if ($band == 'SAT') { // Left for compatibility reasons @@ -268,8 +271,10 @@ class Timeline_model extends CI_Model { $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl, $clublog, $qrz); - $sql .= " and col_cqz <> '' group by col_cqz - order by date desc"; + $sql .= " and col_cqz <> ''"; + $sql .= ") ranked "; + $sql .= "WHERE rn = 1 "; + $sql .= "ORDER BY date DESC;"; $query = $this->db->query($sql, $binding); diff --git a/application/views/timeline/index.php b/application/views/timeline/index.php index c58a85e86..e03142961 100644 --- a/application/views/timeline/index.php +++ b/application/views/timeline/index.php @@ -336,8 +336,11 @@ function write_waz_timeline($timeline_array, $custom_date_format, $bandselect, $ # '.__("Date").' - '.__("CQ Zone").' - '.__("Show QSOs").' + '.__("CQ Zone").''; + if ($propmode == 'SAT' || $propmode == 'All') { + echo ' '.__("Satellite").''; + } + echo ' '.__("Show QSOs").' '; @@ -348,8 +351,11 @@ function write_waz_timeline($timeline_array, $custom_date_format, $bandselect, $ echo ' ' . $i-- . ' ' . date($custom_date_format, $date_as_timestamp) . ' - ' . $line->col_cqz . ' - col_cqz . '","'. $bandselect . '","'. $modeselect. '","' . $propmode . '","' . $award .'")>'.__("Show").' + ' . $line->col_cqz . ''; + if ($propmode == 'SAT' || $propmode == 'All') { + echo '' . $line->sat_name . ''; + } + echo ' col_cqz . '","'. $bandselect . '","'. $modeselect. '","' . $propmode . '","' . $award .'")>'.__("Show").' '; } echo ''; From f3f92bd540a7e07d276aa9c24140a8320ee6843a Mon Sep 17 00:00:00 2001 From: phl0 Date: Thu, 19 Feb 2026 15:04:59 +0100 Subject: [PATCH 08/10] Add satellite to WAJA timeline --- application/models/Timeline_model.php | 13 +++++++++---- application/views/timeline/index.php | 14 ++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/application/models/Timeline_model.php b/application/models/Timeline_model.php index 0a8f03992..6b99d4287 100644 --- a/application/models/Timeline_model.php +++ b/application/models/Timeline_model.php @@ -77,8 +77,11 @@ class Timeline_model extends CI_Model { public function get_timeline_waja($band, $mode, $propmode, $location_list, $qsl, $lotw, $eqsl, $clublog, $year, $qrz, $onlynew) { $binding = []; - $sql = "select min(date(COL_TIME_ON)) date, col_state from " - .$this->config->item('table_name'). " thcv + $sql = "SELECT * FROM ("; + $sql .= "SELECT COL_TIME_ON AS date, col_state, "; + $sql .= "COL_SAT_NAME AS sat_name, "; + $sql .= "ROW_NUMBER() OVER (PARTITION BY COL_STATE ORDER BY COL_TIME_ON ASC) AS rn "; + $sql .= "FROM ".$this->config->item('table_name'). " thcv where station_id in (" . $location_list . ")"; if ($band == 'SAT') { // Left for compatibility reasons @@ -117,8 +120,10 @@ class Timeline_model extends CI_Model { $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl, $clublog, $qrz); - $sql .= " group by col_state - order by date desc"; + $sql .= ") ranked "; + $sql .= "WHERE rn = 1 "; + + $sql .= "ORDER BY date DESC;"; $query = $this->db->query($sql, $binding); diff --git a/application/views/timeline/index.php b/application/views/timeline/index.php index e03142961..142430486 100644 --- a/application/views/timeline/index.php +++ b/application/views/timeline/index.php @@ -240,8 +240,11 @@ function write_waja_timeline($timeline_array, $custom_date_format, $bandselect, # '.__("Date").' - '.__("Prefecture").' - '.__("Show QSOs").' + '.__("Prefecture").''; + if ($propmode == 'SAT' || $propmode == 'All') { + echo ' '.__("Satellite").''; + } + echo ' '.__("Show QSOs").' '; @@ -252,8 +255,11 @@ function write_waja_timeline($timeline_array, $custom_date_format, $bandselect, echo ' ' . $i-- . ' ' . date($custom_date_format, $date_as_timestamp) . ' - ' . $CI->Waja->jaPrefectures[$line->col_state] . ' ('.$line->col_state.') - col_state . '","'. $bandselect . '","'. $modeselect. '","' . $propmode . '","' . $award .'")>'.__("Show").' + ' . $CI->Waja->jaPrefectures[$line->col_state] . ' ('.$line->col_state.')'; + if ($propmode == 'SAT' || $propmode == 'All') { + echo ''.$line->sat_name.''; + } + echo ' col_state . '","'. $bandselect . '","'. $modeselect. '","' . $propmode . '","' . $award .'")>'.__("Show").' '; } echo ''; From df1a7f9b00bd1cc1a004cb4f3f9a5139202331f4 Mon Sep 17 00:00:00 2001 From: phl0 Date: Thu, 19 Feb 2026 15:11:07 +0100 Subject: [PATCH 09/10] Add satellite to IOTA timeline (though not supported by IOTA) --- application/models/Timeline_model.php | 13 +++++++++---- application/views/timeline/index.php | 14 ++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/application/models/Timeline_model.php b/application/models/Timeline_model.php index 6b99d4287..43316f53f 100644 --- a/application/models/Timeline_model.php +++ b/application/models/Timeline_model.php @@ -186,8 +186,11 @@ class Timeline_model extends CI_Model { public function get_timeline_iota($band, $mode, $propmode, $location_list, $qsl, $lotw, $eqsl, $clublog, $year, $qrz, $onlynew) { $binding = []; - $sql = "select min(date(COL_TIME_ON)) date, col_iota, name, prefix from " - .$this->config->item('table_name'). " thcv + $sql = "SELECT * FROM ("; + $sql .= "SELECT COL_TIME_ON AS date, col_iota, name, prefix, "; + $sql .= "COL_SAT_NAME AS sat_name, "; + $sql .= "ROW_NUMBER() OVER (PARTITION BY col_iota ORDER BY COL_TIME_ON ASC) AS rn "; + $sql .= "FROM ".$this->config->item('table_name'). " thcv join iota on thcv.col_iota = iota.tag where station_id in (" . $location_list . ")"; @@ -225,8 +228,10 @@ class Timeline_model extends CI_Model { $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl, $clublog, $qrz); - $sql .= " and col_iota <> '' group by col_iota, name, prefix - order by date desc"; + $sql .= " and col_iota <> ''"; + $sql .= ") ranked "; + $sql .= "WHERE rn = 1 "; + $sql .= "ORDER BY date DESC;"; $query = $this->db->query($sql, $binding); diff --git a/application/views/timeline/index.php b/application/views/timeline/index.php index 142430486..d36a1d6d7 100644 --- a/application/views/timeline/index.php +++ b/application/views/timeline/index.php @@ -312,8 +312,11 @@ function write_iota_timeline($timeline_array, $custom_date_format, $bandselect, '.__("Date").' '.__("IOTA").' '.__("Name").' - '.__("Prefix").' - '.__("Show QSOs").' + '.__("Prefix").''; + if ($propmode == 'SAT' || $propmode == 'All') { + echo ' '.__("Satellite").''; + } + echo ' '.__("Show QSOs").' '; @@ -326,8 +329,11 @@ function write_iota_timeline($timeline_array, $custom_date_format, $bandselect, ' . date($custom_date_format, $date_as_timestamp) . ' ' . $line->col_iota . ' ' . $line->name . ' - ' . $line->prefix . ' - col_iota . '","'. $bandselect . '","'. $modeselect. '","' . $propmode . '","' . $award .'")>'.__("Show").' + ' . $line->prefix . ''; + if ($propmode == 'SAT' || $propmode == 'All') { + echo '' . $line->sat_name . ''; + } + echo ' col_iota . '","'. $bandselect . '","'. $modeselect. '","' . $propmode . '","' . $award .'")>'.__("Show").' '; } echo ''; From 907b70eb8cf0cb793203c63ce8680cd2b3c850b6 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 19 Feb 2026 14:38:38 +0000 Subject: [PATCH 10/10] po/mo updates --- .../locale/bg_BG/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/bs/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/cnr/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/cs_CZ/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/de_DE/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/el_GR/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/es_ES/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/et/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/fi_FI/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/fr_FR/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/hr/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/hu/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/hy/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/it_IT/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/ja/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/lt/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/lv/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/nl_NL/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/pl_PL/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/pt_PT/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/ru_RU/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/sk/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/sl/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/sq/LC_MESSAGES/messages.po | 62 ++++++++++--------- application/locale/sr/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/sv_SE/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/tr_TR/LC_MESSAGES/messages.po | 62 ++++++++++--------- .../locale/zh_CN/LC_MESSAGES/messages.po | 62 ++++++++++--------- assets/lang_src/messages.pot | 62 ++++++++++--------- 29 files changed, 986 insertions(+), 812 deletions(-) diff --git a/application/locale/bg_BG/LC_MESSAGES/messages.po b/application/locale/bg_BG/LC_MESSAGES/messages.po index 77d4ce35d..f7dc3acf6 100644 --- a/application/locale/bg_BG/LC_MESSAGES/messages.po +++ b/application/locale/bg_BG/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: translations@wavelog.org\n" -"POT-Creation-Date: 2026-02-19 10:15+0000\n" +"POT-Creation-Date: 2026-02-19 14:38+0000\n" "PO-Revision-Date: 2024-11-01 08:53+0000\n" "Last-Translator: Plamen Panteleev \n" "Language-Team: Bulgarian \n" "Language-Team: Bosnian \n" "Language-Team: Montenegrin \n" "Language-Team: Czech \n" "Language-Team: German \n" "Language-Team: Greek \n" "Language-Team: Spanish \n" "Language-Team: Estonian \n" "Language-Team: Finnish \n" "Language-Team: French \n" "Language-Team: Croatian \n" "Language-Team: Hungarian \n" "Language-Team: Armenian \n" "Language-Team: Italian \n" "Language-Team: Japanese \n" "Language-Team: Lithuanian \n" "Language-Team: Latvian \n" "Language-Team: Dutch \n" "Language-Team: Polish \n" "Language-Team: Portuguese (Portugal) \n" "Language-Team: Russian \n" "Language-Team: Slovak \n" "Language-Team: Albanian \n" "Language-Team: Serbian \n" "Language-Team: Swedish \n" "Language-Team: Turkish \n" "Language-Team: Chinese (Simplified Han script) \n" "Language-Team: LANGUAGE \n" @@ -1634,7 +1634,7 @@ msgstr "" #: application/views/search/search_result_ajax.php:8 #: application/views/station_profile/create.php:184 #: application/views/station_profile/edit.php:209 -#: application/views/timeline/index.php:295 application/views/user/edit.php:248 +#: application/views/timeline/index.php:313 application/views/user/edit.php:248 #: application/views/user/edit.php:271 application/views/user/edit.php:294 #: application/views/user/edit.php:317 application/views/user/edit.php:341 #: application/views/view_log/partial/log_ajax.php:8 @@ -1665,7 +1665,7 @@ msgstr "" #: application/views/qso/components/previous_contacts.php:85 #: application/views/search/search_result_ajax.php:12 #: application/views/statistics/initialresult.php:21 -#: application/views/timeline/index.php:265 application/views/user/edit.php:252 +#: application/views/timeline/index.php:277 application/views/user/edit.php:252 #: application/views/user/edit.php:275 application/views/user/edit.php:298 #: application/views/user/edit.php:321 application/views/user/edit.php:345 #: application/views/view_log/partial/log_ajax.php:12 @@ -1712,7 +1712,7 @@ msgstr "" #: application/views/simplefle/index.php:161 #: application/views/stationsetup/stationsetup.php:130 #: application/views/statistics/initialresult.php:20 -#: application/views/timeline/index.php:356 application/views/user/edit.php:144 +#: application/views/timeline/index.php:386 application/views/user/edit.php:144 #: application/views/user/edit.php:253 application/views/user/edit.php:276 #: application/views/user/edit.php:299 application/views/user/edit.php:322 #: application/views/user/edit.php:346 application/views/user/profile.php:34 @@ -1919,7 +1919,7 @@ msgstr "" #: application/views/stationsetup/linkedlocations.php:45 #: application/views/stationsetup/locationlist.php:67 #: application/views/stationsetup/stationsetup.php:156 -#: application/views/timeline/index.php:216 +#: application/views/timeline/index.php:222 #: application/views/timeplotter/index.php:33 #: application/views/user/modals/first_login_wizard.php:52 #: application/views/view_log/partial/log_ajax.php:31 @@ -4190,12 +4190,12 @@ msgstr "" #: application/views/statistics/antennaanalytics.php:110 #: application/views/statistics/initials.php:30 #: application/views/timeline/index.php:128 -#: application/views/timeline/index.php:219 -#: application/views/timeline/index.php:250 -#: application/views/timeline/index.php:278 -#: application/views/timeline/index.php:312 -#: application/views/timeline/index.php:340 +#: application/views/timeline/index.php:225 +#: application/views/timeline/index.php:262 +#: application/views/timeline/index.php:296 +#: application/views/timeline/index.php:336 #: application/views/timeline/index.php:370 +#: application/views/timeline/index.php:406 #: application/views/timeplotter/index.php:59 msgid "Show" msgstr "" @@ -4224,6 +4224,12 @@ msgstr "" #: application/views/satellite/skedtable.php:35 #: application/views/sattimers/index.php:38 #: application/views/statistics/index.php:27 +#: application/views/timeline/index.php:202 +#: application/views/timeline/index.php:245 +#: application/views/timeline/index.php:279 +#: application/views/timeline/index.php:317 +#: application/views/timeline/index.php:353 +#: application/views/timeline/index.php:388 msgid "Satellite" msgstr "" @@ -4412,12 +4418,12 @@ msgstr "" #: application/views/activators/index.php:101 #: application/views/callstats/index.php:151 -#: application/views/timeline/index.php:203 -#: application/views/timeline/index.php:238 -#: application/views/timeline/index.php:266 -#: application/views/timeline/index.php:298 -#: application/views/timeline/index.php:328 -#: application/views/timeline/index.php:357 +#: application/views/timeline/index.php:206 +#: application/views/timeline/index.php:247 +#: application/views/timeline/index.php:281 +#: application/views/timeline/index.php:319 +#: application/views/timeline/index.php:355 +#: application/views/timeline/index.php:390 msgid "Show QSOs" msgstr "" @@ -4505,11 +4511,11 @@ msgstr "" #: application/views/simplefle/index.php:154 #: application/views/statistics/initialresult.php:15 #: application/views/timeline/index.php:198 -#: application/views/timeline/index.php:236 -#: application/views/timeline/index.php:264 -#: application/views/timeline/index.php:294 -#: application/views/timeline/index.php:326 -#: application/views/timeline/index.php:354 +#: application/views/timeline/index.php:242 +#: application/views/timeline/index.php:276 +#: application/views/timeline/index.php:312 +#: application/views/timeline/index.php:350 +#: application/views/timeline/index.php:384 #: application/views/view_log/partial/log.php:4 #: application/views/view_log/partial/log_ajax.php:196 #: application/views/visitor/index.php:151 @@ -4543,7 +4549,7 @@ msgstr "" #: application/views/search/search_result_ajax.php:91 #: application/views/simplefle/index.php:155 #: application/views/statistics/initialresult.php:16 -#: application/views/timeline/index.php:355 +#: application/views/timeline/index.php:385 #: application/views/timeplotter/index.php:5 #: application/views/view_log/partial/log.php:6 #: application/views/view_log/partial/log_ajax.php:198 @@ -5019,7 +5025,7 @@ msgstr "" #: application/views/oqrs/status_info.php:4 #: application/views/sattimers/index.php:39 #: application/views/stationsetup/stationsetup.php:34 -#: application/views/timeline/index.php:201 +#: application/views/timeline/index.php:204 #: application/views/usermode/index.php:41 msgid "Status" msgstr "" @@ -5373,7 +5379,7 @@ msgstr "" #: application/views/qso/edit_ajax.php:308 application/views/qso/index.php:513 #: application/views/station_profile/create.php:128 #: application/views/station_profile/edit.php:153 -#: application/views/timeline/index.php:327 +#: application/views/timeline/index.php:351 #: application/views/timeplotter/index.php:44 #: application/views/user/modals/first_login_wizard.php:74 #: application/views/zonechecker/index.php:17 @@ -6009,7 +6015,7 @@ msgstr "" #: application/views/awards/wae/index.php:163 #: application/views/logbookadvanced/statecheckresult.php:10 #: application/views/timeline/index.php:199 -#: application/views/timeline/index.php:297 +#: application/views/timeline/index.php:315 msgid "Prefix" msgstr "" @@ -6233,7 +6239,7 @@ msgstr "" #: application/views/search/search_result_ajax.php:19 #: application/views/stationsetup/stationsetup.php:33 #: application/views/themes/index.php:82 -#: application/views/timeline/index.php:296 application/views/user/edit.php:256 +#: application/views/timeline/index.php:314 application/views/user/edit.php:256 #: application/views/user/edit.php:279 application/views/user/edit.php:302 #: application/views/user/edit.php:325 application/views/user/edit.php:349 #: application/views/view_log/partial/log_ajax.php:19 @@ -6854,7 +6860,7 @@ msgid "Show WAJA Map" msgstr "" #: application/views/awards/waja/index.php:158 -#: application/views/timeline/index.php:237 +#: application/views/timeline/index.php:243 msgid "Prefecture" msgstr "" @@ -9923,7 +9929,7 @@ msgstr "" #: application/views/dayswithqso/index.php:160 #: application/views/dayswithqso/index.php:182 #: application/views/lotw/satupdate.php:7 -#: application/views/timeline/index.php:202 +#: application/views/timeline/index.php:205 msgid "End Date" msgstr ""