diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2021-04-01 19:47:09 +0200 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2021-04-01 19:47:09 +0200 |
commit | 7b2acc35a03cec9928e9ce86c9a3195429ccd306 (patch) | |
tree | 8bb041f148b9046420226160be942790868165bc | |
parent | ed89a07e3890f135f14cbe39aaf15a4c91f2c387 (diff) | |
download | gigologadmin-7b2acc35a03cec9928e9ce86c9a3195429ccd306.tar.gz gigologadmin-7b2acc35a03cec9928e9ce86c9a3195429ccd306.tar.bz2 gigologadmin-7b2acc35a03cec9928e9ce86c9a3195429ccd306.zip |
Move rendering of concert assignment table.
Moved it to the admin page for now. May move it further to a partial or
something later. There's quite a bit of cleanup needed. It still refers
to some utility functions in the old shortcode module.
-rw-r--r-- | includes/admin/views/giglog_admin_page.php | 205 | ||||
-rw-r--r-- | includes/venue.php | 10 |
2 files changed, 213 insertions, 2 deletions
diff --git a/includes/admin/views/giglog_admin_page.php b/includes/admin/views/giglog_admin_page.php index 9f9786c..ec397f4 100644 --- a/includes/admin/views/giglog_admin_page.php +++ b/includes/admin/views/giglog_admin_page.php @@ -17,16 +17,217 @@ */ if ( !class_exists( 'GiglogAdmin_AdminPage' ) ) { + require_once __DIR__ . '/../../venue.php'; + class GiglogAdmin_AdminPage { static function render_html() { ?> <div class="wrap"> <h1>Giglog Admin</h1> - <p><?php echo giglogadmin_getfiltersphotog(); ?></p> - <p><?php echo giglogadmin_getconcertsphotog(); ?></p> + + <p>The available slots are marked with the green checkbox. + If you click on it, it will be assigned to you and if you no longer + wish to cover that concert, click on the red icon and you will be + unassigned. A mail should be sent to the admin when this happens, + but in order for the accreditation request to be sent, you have to + mail live@eternal-terror.com with the template containing concert + information. There might be some exceptions, but those are discussed + case by case. So whenever you want a concert, assign yourself and send + the template no later than 3 weeks before the concert.</p> + + <p>Admin will try to keep the concert status updated so that you know + what the accreditation status is. You will get personal message if this + is really close to the concert date.</p> + + <p><?php echo GiglogAdmin_AdminPage::get_filters() ?></p> + <p><?php echo GiglogAdmin_AdminPage::get_concerts() ?></p> </div> <?php } + + static function get_filters() + { + global $wpdb; + + //echo (var_dump($_POST["selectvenue"])); + + $results = $wpdb->get_results('select distinct wpgvenue_city from wpg_venues'); + $select= '<form method="POST" action=""><select name="selectcity">'; + $select.='<option value="ALL" '; + if(isset($_POST["selectcity"]) && $_POST["selectcity"] == "ALL") + { $select.= ' selected = "selected"';} + $select.='> All cities</option>'; + foreach ( $results AS $row ) + { + $select.='<option value="'.$row->wpgvenue_city.'"'; + if(isset($_POST["selectcity"]) && $_POST["selectcity"] == $row->wpgvenue_city) + { $select.= ' selected = "selected"';} + $select.=' >'. $row->wpgvenue_city.'</option>'; + } + + if(isset($_POST["selectcity"]) && $_POST["selectcity"] != "ALL") + { + $select.='</select>'; + //second drop down for venue + + $vquery = "select id, wpgvenue_name from wpg_venues"; + $vquery.= " where wpgvenue_city='".$_POST["selectcity"]."'"; + $resultsv = $wpdb->get_results($vquery); + $select.= '<select name="selectvenue">'; + $select.='<option value="0" '; + if(isset($_POST["selectvenue"]) && $_POST["selectvenue"] == "0") + { $select.= ' selected = "selected"';} + $select.='> All venues</option>'; + + foreach ( $resultsv AS $rowv ) + { + $select.='<option value="'.$rowv->id.'"'; + if(isset($_POST["selectvenue"]) && $_POST["selectvenue"] == $rowv->id) + { $select.= ' selected = "selected"';} + $select.=' >'. $rowv->wpgvenue_name.'</option>'; + } + //end IF that checks if city was selected + } + $select.='</select><input type="submit" value="Filter"></form>'; + return $select; + } + + static function get_concerts() + { + $hf_user = wp_get_current_user(); + $hf_username = $hf_user->user_login; + $roles = ( array ) $hf_user->roles; + global $wpdb; + + $content = '<table class="assignit">'; + // $content .= '</tr><th>CITY</th><th>ID</th><th>BAND</th><th>VENUE</th><th>DATE</th></tr>'; + + $content .= '<tr class="assignithrow"> + <th>CITY</th><th>BAND</th><th>VENUE</th><th>DATE</th><th> </th> + <th>PHOTO1</th><th>PHOTO2</th><th>TEXT1</th><th>TEXT2</th> + <th>STATUS</th></tr>'; + + // Use the submitted "city" if any. Otherwise, use the default/static value. + $cty = filter_input( INPUT_POST, 'selectcity' ); + $cty = $cty ? $cty: 'ALL'; + + $venue = filter_input( INPUT_POST, 'selectvenue' ); + $venue = $venue ? $venue : '0'; + + + $query = "SELECT wpgc.id, wpgb.wpgband_name as band, wpgv.wpgvenue_name as venue, wpgc.wpgconcert_date, wpgc.wpgconcert_tickets, wpgc.wpgconcert_event, wpgv.wpgvenue_city, wpgv.wpgvenue_webpage, wpgps.wpgs_name + FROM wpg_concerts wpgc, wpg_bands wpgb, wpg_venues wpgv, wpg_pressstatus wpgps, wpg_concertlogs wpgcl + where wpgc.band=wpgb.id + and wpgc.venue = wpgv.id + and wpgconcert_date >= CURDATE() + and wpgps.id = wpgcl.wpgcl_status + and wpgcl.wpgcl_concertid=wpgc.id"; + + $query .= ($cty == "ALL") ? "" : " and wpgv.wpgvenue_city='" .$cty ."'"; + $query .= ($venue == "0") ? "" : " and wpgv.id='" .$venue ."'"; + $query .=" order by wpgv.wpgvenue_city, wpgconcert_date" ; + $results = $wpdb->get_results($query); + + $lastType = ''; + foreach ( $results AS $row ) { + $content .= '<tr class="assignitr">'; + + if($lastType != '' && $lastType != $row->wpgvenue_city) { + $content .= '<td>'.$row->wpgvenue_city.'</td></tr><tr>'; + } + + if ($lastType == '' ) { + $content .= '<td>'.$row->wpgvenue_city.'</td></tr><tr>'; + } + // Modify these to match the database structure + // $content .= '<td>' . $row->id. '</td>'; + $content .= '<td></td>'; + $content .= '<td>' . $row->band. '</td>'; + $content .= '<td>' . $row->venue. '</td>'; + $fdate = strtotime($row->wpgconcert_date); + $newformat = date('d.M.Y',$fdate); + + //$content .= DATE_FORMAT($fdate,'%d.%b.%Y'); + $content .= '<td>' .$newformat. '</td>'; + $content .= '<td></td>'; //.giglogadmin_getpublishstatus($row->id ).'</td>'; + $content .= '<td>'.giglogadmin_returnuser('photo1', $row->id ).'</td>'; + $content .= '<td>'.giglogadmin_returnuser('photo2', $row->id ).'</td>'; + $content .= '<td>'.giglogadmin_returnuser('rev1', $row->id ).'</td>'; + $content .= '<td>'.giglogadmin_returnuser('rev2', $row->id ).'</td>'; + $content .= '<td class="adminbuttons">'.$row -> wpgs_name; + if (current_user_can('administrator')) //($hf_username == 'etadmin') + $content .= '<span><form method="POST" action=""> <input type="hidden" name="cid" value="' . $row->id. '" /><input type="submit" name="reqsent" value="REQSENT"/><input type="submit" name="phok" value="PHOK"/><input type="submit" name="txtok" value="TXOK"/><input type="submit" name="allok" value="ALLOK"/><input type="submit" name="rej" value="REJ"/> + </form></span>'; + $content .= '</td>'; + $content .= '</tr>'; + $lastType = $row->wpgvenue_city; + } + $content .= '</table>'; + + if(isset($_POST['assignitem'])) + { + echo (giglogadmin_assignconcert($_POST['pid'],$_POST['cid'])); + + $url2=$_SERVER['REQUEST_URI']; + header("Refresh: 1; URL=$url2"); //reload page + } + + if(isset($_POST['unassignitem'])) + { + echo (giglogadmin_unassignconcert($_POST['pid'],$_POST['cid'])); + + $url3=$_SERVER['REQUEST_URI']; + header("Refresh: 1; URL=$url3"); //reload page + } + + if(isset($_POST['reqsent'])) + { + echo (giglogadmin_assignconcert($_POST['pid'],$_POST['cid'])); + $usql = "UPDATE wpg_concertlogs SET wpgcl_status=2 WHERE wpgcl_concertid=".$_POST['cid']; + $uresults = $wpdb->get_results($usql); + $url2=$_SERVER['REQUEST_URI']; + header("Refresh: 1; URL=$url2"); //reload page + } + + if(isset($_POST['phok'])) + { + $usql = "UPDATE wpg_concertlogs SET wpgcl_status=3 WHERE wpgcl_concertid=".$_POST['cid']; + $uresults = $wpdb->get_results($usql); + + $url2=$_SERVER['REQUEST_URI']; + header("Refresh: 1; URL=$url2"); //reload page + } + + if(isset($_POST['txtok'])) + { + $usql = "UPDATE wpg_concertlogs SET wpgcl_status=4 WHERE wpgcl_concertid=".$_POST['cid']; + $uresults = $wpdb->get_results($usql); + + $url2=$_SERVER['REQUEST_URI']; + header("Refresh: 1; URL=$url2"); //reload page + } + + if(isset($_POST['allok'])) + { + $usql = "UPDATE wpg_concertlogs SET wpgcl_status=5 WHERE wpgcl_concertid=".$_POST['cid']; + $uresults = $wpdb->get_results($usql); + + $url2=$_SERVER['REQUEST_URI']; + header("Refresh: 1; URL=$url2"); //reload page + } + + if(isset($_POST['rej'])) + { + $usql = "UPDATE wpg_concertlogs SET wpgcl_status=6 WHERE wpgcl_concertid=".$_POST['cid']; + $uresults = $wpdb->get_results($usql); + + $url2=$_SERVER['REQUEST_URI']; + header("Refresh: 1; URL=$url2"); //reload page + } + + // return the table + return $content; + } } } ?> diff --git a/includes/venue.php b/includes/venue.php index 8edb136..de144fd 100644 --- a/includes/venue.php +++ b/includes/venue.php @@ -48,5 +48,15 @@ if ( !class_exists('GiglogAdmin_Venue') ) { return array_map(function ($r) { return $r->wpgvenue_city; }, $results); } + + static function venues_in_city($city) + { + global $wpdb; + $q = $wpdb->prepare( + "select id, wpgvenue_name from wpg_venues where wpgvenue_city=?", $city); + $results = $wpdb->get_results($q); + + return array_map(function ($r) { return [$r->id, $r->wpgvenue_name]; }, $results); + } } } |