From f421dc7884b562b4991fe72833acd69781957a46 Mon Sep 17 00:00:00 2001 From: Oreolek Date: Tue, 18 Feb 2014 14:45:48 +0700 Subject: [PATCH] DB migration for instants (sent flag) --- application/classes/Model/Instant.php | 16 ----------- application/classes/Model/Subscription.php | 8 ++++++ .../migrations/kangana/20140218143726.php | 27 ++++++++++++++++++ model.mwb | Bin 12874 -> 13306 bytes 4 files changed, 35 insertions(+), 16 deletions(-) create mode 100644 application/migrations/kangana/20140218143726.php diff --git a/application/classes/Model/Instant.php b/application/classes/Model/Instant.php index 8636212..9866397 100644 --- a/application/classes/Model/Instant.php +++ b/application/classes/Model/Instant.php @@ -71,20 +71,4 @@ class Model_Instant extends ORM { } return $email->send(); } - - /** - * Send the instant to all subscribers if it's not a draft - **/ - public function save() - { - if (!$this->is_draft()) - { - $subscription = ORM::factory('Subscription', $this->subscription_id); - $subscribers = $subscription->clients->find_all(); - foreach ($subscribers as $subscriber) - { - } - } - } - } diff --git a/application/classes/Model/Subscription.php b/application/classes/Model/Subscription.php index 043ff40..6e62d60 100644 --- a/application/classes/Model/Subscription.php +++ b/application/classes/Model/Subscription.php @@ -50,4 +50,12 @@ class Model_Subscription extends ORM { 'welcome' => 'Welcome message', 'description' => 'Description (for the clients)' ); + + /** + * Return subscriber count + **/ + public function count_clients() + { + return DB::select(array(DB::expr('COUNT(client_id)'), 'cnt'))->from('clients_courses')->where('course_id', '=', $this->id)->execute()->get('cnt'); + } } diff --git a/application/migrations/kangana/20140218143726.php b/application/migrations/kangana/20140218143726.php new file mode 100644 index 0000000..6477ae0 --- /dev/null +++ b/application/migrations/kangana/20140218143726.php @@ -0,0 +1,27 @@ +query(NULL, 'alter table `instants` drop column `is_draft`'); + $db->query(NULL, "alter table `instants` add column `sent` int(1) not null default '0'"); + } + + /** + * Run queries needed to remove this migration + * + * @param Kohana_Database $db Database connection + */ + public function down(Kohana_Database $db) + { + $db->query(NULL, 'alter table `instants` drop column `sent`'); + $db->query(NULL, "alter table `instants` add column `is_draft` int(1) not null default '1'"); + } + +} diff --git a/model.mwb b/model.mwb index 33ccc77a875dc3fd7e994b18c2a8a1c6a41e4e17..c06836b286517af99f67bd4799666bc648f9a754 100644 GIT binary patch delta 11462 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 delta 11027 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 JP3dJ9_%Dlt90ULW