File: app/controllers/calendars_controller.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  class: CalendarsController#18
includes
  QueriesHelper   
  SortHelper   
inherits from
  ApplicationController   
has properties
method: show #31

Class Hierarchy

Code

   1  # Redmine - project management software
   2  # Copyright (C) 2006-2011  Jean-Philippe Lang
   3  #
   4  # This program is free software; you can redistribute it and/or
   5  # modify it under the terms of the GNU General Public License
   6  # as published by the Free Software Foundation; either version 2
   7  # of the License, or (at your option) any later version.
   8  #
   9  # This program is distributed in the hope that it will be useful,
  10  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  # GNU General Public License for more details.
  13  #
  14  # You should have received a copy of the GNU General Public License
  15  # along with this program; if not, write to the Free Software
  16  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  17 
  18  class CalendarsController < ApplicationController
  19    menu_item :calendar
  20    before_filter :find_optional_project
  21 
  22    rescue_from Query::StatementInvalid, :with => :query_statement_invalid
  23 
  24    helper :issues
  25    helper :projects
  26    helper :queries
  27    include QueriesHelper
  28    helper :sort
  29    include SortHelper
  30 
  31    def show
  32      if params[:year] and params[:year].to_i > 1900
  33        @year = params[:year].to_i
  34        if params[:month] and params[:month].to_i > 0 and params[:month].to_i < 13
  35          @month = params[:month].to_i
  36        end
  37      end
  38      @year ||= Date.today.year
  39      @month ||= Date.today.month
  40 
  41      @calendar = Redmine::Helpers::Calendar.new(Date.civil(@year, @month, 1), current_language, :month)
  42      retrieve_query
  43      @query.group_by = nil
  44      if @query.valid?
  45        events = []
  46        events += @query.issues(:include => [:tracker, :assigned_to, :priority],
  47                                :conditions => ["((start_date BETWEEN ? AND ?) OR (due_date BETWEEN ? AND ?))", @calendar.startdt, @calendar.enddt, @calendar.startdt, @calendar.enddt]
  48                                )
  49        events += @query.versions(:conditions => ["effective_date BETWEEN ? AND ?", @calendar.startdt, @calendar.enddt])
  50 
  51        @calendar.events = events
  52      end
  53 
  54      render :action => 'show', :layout => false if request.xhr?
  55    end
  56  end