blob: 5cc5929b16f143c75055a5e7b77f5f08c3479e36 [file] [log] [blame]
# More information:
# * {EPF Wiki Data model}[link:files/doc/DATAMODEL.html]
#--######################################################################
# Copyright (c) 2006 Logica
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#
# Onno van der Straaten:: initial implementation
#++######################################################################
# {Copyright (c) 2006 Logica}[link:files/COPYRIGHT.html]
class Notification < ActiveRecord::Base
belongs_to :user
belongs_to :page
belongs_to :site
#--
# TODO user class as third parameter?
#++
def self.find_all_users(page, class_name)
Notification.find(:all, :conditions => ["page_id=? and notification_type=?", page.id, class_name]).collect {|n|n.user}
end
def self.find_or_create(page, user, class_name)
logger.info("Finding or creating notification for #{user.name} for #{page.presentation_name} and type #{class_name}")
n = Notification.find(:first, :conditions => ['page_id=? and notification_type=? and user_id=?',page.id, class_name, user.id])
if n.nil?
logger.info("No")
n = Notification.create(:notification_type => class_name, :user => user, :page => page)
end
return n
end
end