Skip to content

Commit

Permalink
Merge pull request #13 from code-sport/feat/customizable_time_interva…
Browse files Browse the repository at this point in the history
…ls_for_Covid-19_status

Feat/customizable time intervals for covid 19 status
  • Loading branch information
code-sport committed Dec 28, 2021
2 parents ce542d4 + 8904625 commit 81d9ff0
Show file tree
Hide file tree
Showing 34 changed files with 240 additions and 75 deletions.
22 changes: 11 additions & 11 deletions course-booking-system-extension.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Plugin Name: Course Booking System Extension
* Plugin URI: https://github.com/code-sport/course-booking-system-extension
* Description: Extension for Course Booking System
* Version: 0.3.1
* Version: 0.3.2
* Author: Code.Sport
* Author URI: https://github.com/code-sport/
* Text Domain: course-booking-system-extension
Expand All @@ -18,18 +18,18 @@

//require_once plugin_dir_path(__FILE__) . '../course-booking-system/includes/functions.php';

use CBSE\Admin\Plugin;
use CBSE\Admin\Settings;
use CBSE\Admin\UserCovid19StatusOverview;
use CBSE\Admin\UserCovid19StatusSettings;
use CBSE\Admin\User\Admin\Plugin;
use CBSE\Admin\User\Admin\Settings;
use CBSE\Admin\User\Admin\User\User\UserCovid19StatusOverview;
use CBSE\Admin\User\Admin\User\UserCovid19StatusSettings;
use CBSE\Admin\User\Api\Api;
use CBSE\Admin\User\Cron\DocumentationCoach;
use CBSE\Admin\User\Cron\DocumentationPrint;
use CBSE\Admin\User\Shortcode\ShortcodeOverviewForCourseHead;
use CBSE\Admin\User\Shortcode\ShortcodeUserCovid19Status;
use CBSE\Admin\User\UserInformMethod;
use CBSE\Ajax;
use CBSE\Api\Api;
use CBSE\Cron\DocumentationCoach;
use CBSE\Cron\DocumentationPrint;
use CBSE\Shortcode\ShortcodeOverviewForCourseHead;
use CBSE\Shortcode\ShortcodeUserCovid19Status;
use CBSE\TemplatesManager;
use CBSE\UserInformMethod;

defined('ABSPATH') || exit;
define('CBSE_PLUGIN_BASENAME', plugin_basename(__FILE__));
Expand Down
2 changes: 1 addition & 1 deletion readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/donate?hosted_button_id=ZW6C88ATGA6QS
Requires at least: 5.8.1
Tested up to: 5.8.2
Requires PHP: 7.4
Stable tag: 0.3.1
Stable tag: 0.3.2
License: GPL v3
License URI: https://github.com/code-sport/course-booking-system-extension/blob/main/license.txt

Expand Down
2 changes: 1 addition & 1 deletion sonar-project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ sonar.projectKey=code-sport_course-booking-system-extension
sonar.organization=codesport
# This is the name and version displayed in the SonarCloud UI.
#sonar.projectName=course-booking-system-extension
sonar.projectVersion=0.3.1
sonar.projectVersion=0.3.2
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
#sonar.sources=.
# Encoding of the source code. Default is default system encoding
Expand Down
2 changes: 1 addition & 1 deletion src/Admin/Plugin.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace CBSE\Admin;
namespace CBSE\Admin\User\Admin;

class Plugin
{
Expand Down
22 changes: 16 additions & 6 deletions src/Admin/Settings.php
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
<?php

namespace CBSE\Admin;
namespace CBSE\Admin\User\Admin;

use CBSE\Admin\Settings\AutoPrintCbseSettings;
use CBSE\Admin\Settings\GeneralCbseSettings;
use CBSE\Admin\Settings\LicensesSettings;
use CBSE\Admin\Settings\MailCoachCbseSettings;
use CBSE\Admin\Settings\PdfCbseSettings;
use CBSE\Admin\User\Admin\User\User\Settings\AutoPrintCbseSettings;
use CBSE\Admin\User\Admin\User\User\Settings\Covid19Settings;
use CBSE\Admin\User\Admin\User\User\Settings\GeneralCbseSettings;
use CBSE\Admin\User\Admin\User\User\Settings\LicensesSettings;
use CBSE\Admin\User\Admin\User\User\Settings\MailCoachCbseSettings;
use CBSE\Admin\User\Admin\User\User\Settings\PdfCbseSettings;

class Settings
{
private GeneralCbseSettings $generalCbseSettings;
private Covid19Settings $covid19Settings;
private PdfCbseSettings $pdfCbseSettings;
private MailCoachCbseSettings $mailCoachCbseSettings;
private AutoPrintCbseSettings $autoPrintCbseSettings;
Expand All @@ -23,6 +25,7 @@ public function __construct()


$this->generalCbseSettings = new GeneralCbseSettings();
$this->covid19Settings = new Covid19Settings();
$this->pdfCbseSettings = new PdfCbseSettings();
$this->mailCoachCbseSettings = new MailCoachCbseSettings();
$this->autoPrintCbseSettings = new AutoPrintCbseSettings();
Expand Down Expand Up @@ -56,6 +59,9 @@ public function registerSettings()
case $this->generalCbseSettings->tabKey():
$this->generalCbseSettings->registerSettings();
break;
case $this->covid19Settings->tabKey():
$this->covid19Settings->registerSettings();
break;
case $this->pdfCbseSettings->tabKey():
$this->pdfCbseSettings->registerSettings();
break;
Expand Down Expand Up @@ -97,6 +103,9 @@ public function renderSettingsPage()
case $this->generalCbseSettings->tabKey():
$this->generalCbseSettings->renderSettingsPage();
break;
case $this->covid19Settings->tabKey():
$this->covid19Settings->renderSettingsPage();
break;
case $this->pdfCbseSettings->tabKey():
$this->pdfCbseSettings->renderSettingsPage();
break;
Expand Down Expand Up @@ -131,6 +140,7 @@ public function settingsTab()
$activeTab = $this->getActiveTab();

echo $this->generalCbseSettings->getTabHtmlLink($activeTab);
echo $this->covid19Settings->getTabHtmlLink($activeTab);
echo $this->pdfCbseSettings->getTabHtmlLink($activeTab);
echo $this->mailCoachCbseSettings->getTabHtmlLink($activeTab);
echo $this->autoPrintCbseSettings->getTabHtmlLink($activeTab);
Expand Down
4 changes: 2 additions & 2 deletions src/Admin/Settings/AutoPrintCbseSettings.php
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?php

namespace CBSE\Admin\Settings;
namespace CBSE\Admin\User\Admin\User\User\Settings;

use CBSE\Cron\DocumentationPrint;
use CBSE\Admin\User\Cron\DocumentationPrint;
use DateTime;

class AutoPrintCbseSettings extends CbseSettings
Expand Down
2 changes: 1 addition & 1 deletion src/Admin/Settings/CbseSettings.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace CBSE\Admin\Settings;
namespace CBSE\Admin\User\Admin\User\User\Settings;

/**
* For the settings tabs
Expand Down
136 changes: 136 additions & 0 deletions src/Admin/Settings/Covid19Settings.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
<?php

namespace CBSE\Admin\User\Admin\User\User\Settings;

class Covid19Settings extends CbseSettings
{

private string $sectionHeader = 'cbse_covid19';

public function __construct()
{
parent::__construct('cbse_covid19', 'cbse_covid19_options');
}

/**
* @inheritDoc
*/
public function tabName(): string
{
return __('Covid 19', CBSE_LANGUAGE_DOMAIN);
}

/**
* @inheritDoc
*/
public function tabKey(): string
{
return 'covid19';
}

/**
* @inheritDoc
*/
public function registerSettings()
{
//section name, display name, callback to print description of section, page to which section is attached.
add_settings_section($this->sectionHeader, __('Covid 19', CBSE_LANGUAGE_DOMAIN), [$this, 'covid19General'], 'course_booking_system_extension');

//setting name, display name, callback to print form element, page in which field is displayed, section to which it belongs.
//last field section is optional.
/* vaccinated */
add_settings_field('vaccinated_status_valid_from', __('vaccinated status valid from', CBSE_LANGUAGE_DOMAIN), [$this, 'vaccinatedStatusValidFrom'], 'course_booking_system_extension', $this->sectionHeader);
add_settings_field('vaccinated_status_valid_to', __('vaccinated status valid to', CBSE_LANGUAGE_DOMAIN), [$this, 'vaccinatedStatusValidTo'], 'course_booking_system_extension', $this->sectionHeader);
add_settings_field('vaccinated_plus_status_valid_to', __('vaccinated plus status valid to', CBSE_LANGUAGE_DOMAIN), [$this, 'vaccinatedPlusStatusValidTo'], 'course_booking_system_extension', $this->sectionHeader);

/* vaccinated_updated*/
add_settings_field('vaccinated_updated_status_valid_from', __('vaccinated updated status valid from', CBSE_LANGUAGE_DOMAIN), [$this, 'vaccinatedUpdatedStatusValidFrom'], 'course_booking_system_extension', $this->sectionHeader);
add_settings_field('vaccinated_updated_status_valid_to', __('vaccinated updated status valid to', CBSE_LANGUAGE_DOMAIN), [$this, 'vaccinatedUpdatedStatusValidTo'], 'course_booking_system_extension', $this->sectionHeader);
add_settings_field('vaccinated_updated_plus_status_valid_to', __('vaccinated updated plus status valid to', CBSE_LANGUAGE_DOMAIN), [$this, 'vaccinatedUpdatedPlusStatusValidTo'], 'course_booking_system_extension', $this->sectionHeader);

/* recovered */
add_settings_field('recovered_status_valid_from', __('recovered status valid from', CBSE_LANGUAGE_DOMAIN), [$this, 'recoveredStatusValidFrom'], 'course_booking_system_extension', $this->sectionHeader);
add_settings_field('recovered_status_valid_to', __('recovered status valid to', CBSE_LANGUAGE_DOMAIN), [$this, 'recoveredStatusValidTo'], 'course_booking_system_extension', $this->sectionHeader);
add_settings_field('recovered_plus_status_valid_to', __('recovered plus status valid to', CBSE_LANGUAGE_DOMAIN), [$this, 'recoveredPlusStatusValidTo'], 'course_booking_system_extension', $this->sectionHeader);
}

public function covid19General()
{
$text = '<p>';
$text .= __('Settings for the Covid-19 status validities.', CBSE_LANGUAGE_DOMAIN);
$text .= '</p>';

echo $text;
}

/* vaccinated */
public function vaccinatedStatusValidFrom()
{
$this->showSettingField('vaccinated_status_valid_from', 'P14D');
}

private function showSettingField(string $setting, string $default)
{
$value = esc_attr($this->getOptions($setting) ?? $default);
echo "<input id='{$setting}' name='cbse_covid19_options[{$setting}]' type='text' value='" . $value . "' pattern='((P([1-9]|[1-9][0-9])(W|D|M|H)|PT([1-9]|[1-9][0-9])H)|^$)' />";
echo "<p class='description'>" . __('Based on DateInterval::__construct', CBSE_LANGUAGE_DOMAIN) . "</p>";
}

public function vaccinatedStatusValidTo()
{
$this->showSettingField('vaccinated_status_valid_to', 'P9M');
}

/* vaccinated_updated*/

public function vaccinatedPlusStatusValidTo()
{
$this->showSettingField('vaccinated_plus_status_valid_to', 'P3M');
}

public function vaccinatedUpdatedStatusValidFrom()
{
$this->showSettingField('vaccinated_updated_status_valid_from', '');
}

public function vaccinatedUpdatedStatusValidTo()
{
$this->showSettingField('vaccinated_updated_status_valid_to', 'P9M');
}

/* recovered */

public function vaccinatedUpdatedPlusStatusValidTo()
{
$this->showSettingField('vaccinated_updated_plus_status_valid_to', '');
}

public function recoveredStatusValidFrom()
{
$this->showSettingField('recovered_status_valid_from', 'P28D');
}

public function recoveredStatusValidTo()
{
$this->showSettingField('recovered_status_valid_to', 'P6M');
}

public function recoveredPlusStatusValidTo()
{
$this->showSettingField('recovered_plus_status_valid_to', 'P3M');
}

/**
* @inheritDoc
*/
public function renderSettingsPage()
{
settings_fields($this->sectionHeader);
}

public function validateInput($input)
{
do_action('qm/debug', 'Covid19Settings->Validate {input}', ['input' => json_encode($input),]);
return $input;
}
}
2 changes: 1 addition & 1 deletion src/Admin/Settings/GeneralCbseSettings.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace CBSE\Admin\Settings;
namespace CBSE\Admin\User\Admin\User\User\Settings;

class GeneralCbseSettings extends CbseSettings
{
Expand Down
2 changes: 1 addition & 1 deletion src/Admin/Settings/LicensesSettings.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace CBSE\Admin\Settings;
namespace CBSE\Admin\User\Admin\User\User\Settings;

class LicensesSettings extends CbseSettings
{
Expand Down
4 changes: 2 additions & 2 deletions src/Admin/Settings/MailCoachCbseSettings.php
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?php

namespace CBSE\Admin\Settings;
namespace CBSE\Admin\User\Admin\User\User\Settings;

use CBSE\Cron\DocumentationCoach;
use CBSE\Admin\User\Cron\DocumentationCoach;
use DateTime;

class MailCoachCbseSettings extends CbseSettings
Expand Down
2 changes: 1 addition & 1 deletion src/Admin/Settings/PdfCbseSettings.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace CBSE\Admin\Settings;
namespace CBSE\Admin\User\Admin\User\User\Settings;

class PdfCbseSettings extends CbseSettings
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace CBSE\Admin;
namespace CBSE\Admin\User\Admin\User\User;

use CBSE\UserCovid19Status;
use Exception;
Expand Down Expand Up @@ -62,15 +62,15 @@ private function getStatus(int $userId): string
$statusFromUser = new UserCovid19Status($userId);
$style = '';

if(!$statusFromUser->isValid())
if (!$statusFromUser->isValid())
{
$style .= 'color: red;';
}

$content = "<p style='$style'>{$statusFromUser->getStatusOrEmpty()}<br />";
$content .= "{$statusFromUser->getDateFormatted()}</p>";

if($statusFromUser->getFlags())
if ($statusFromUser->getFlags())
{
$content .= "<p>{$statusFromUser->getFlags()}</p>";
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace CBSE\Admin;
namespace CBSE\Admin\User\Admin\User;

class UserCovid19StatusSettings
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace CBSE;
namespace CBSE\Admin\User;

class UserInformMethod
{
Expand Down
2 changes: 1 addition & 1 deletion src/Ajax.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace CBSE;

use CBSE\Dto\CourseInfoDate;
use CBSE\Admin\User\Dto\CourseInfoDate;
use DateTime;

class Ajax
Expand Down
4 changes: 2 additions & 2 deletions src/Api/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
* Add rest api endpoint for course-booking-system-extension
*/

namespace CBSE\Api;
namespace CBSE\Admin\User\Api;

use CBSE\Exception\UnserializeSingletonException;
use CBSE\Admin\User\Exception\UnserializeSingletonException;
use WP_Error;
use WP_REST_Controller;
use WP_REST_Response;
Expand Down
2 changes: 1 addition & 1 deletion src/Cron/CronBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

//defined('TEST');

namespace CBSE\Cron;
namespace CBSE\Admin\User\Cron;

use DateTime;

Expand Down
Loading

0 comments on commit 81d9ff0

Please sign in to comment.