Wilmer
Wilmer

Reputation: 1045

Redmine Calendar view not working

I have successfully installed Redmine on a Debian 7 box. The environment is:

Environment:
  Redmine version                2.5.1.stable
  Ruby version                   1.9.3-p194 (2012-04-20) [x86_64-linux]
  Rails version                  3.2.17
  Environment                    production
  Database adapter               Mysql2
SCM:
  Git                            1.7.10.4
  Filesystem                     
Redmine plugins:
  scrum                          0.5.0

The problem is that when I click on the "Calendar" tab, I get the following error:

500 An error occurred while executing the query and has been logged. Please report this error to your Redmine administrator.

I looked at the Apache logs and this is what it says:

Query::StatementInvalid: Mysql2::Error: Column 'start_date' in where clause is ambiguous: SELECT issues.id AS t0_r0, issues.tracker_id AS t0_r1, issues.project_id AS t0_r2, issues.subject AS t0_r3, issues.description AS t0_r4, issues.due_date AS t0_r5, issues.category_id AS t0_r6, issues.status_id AS t0_r7, issues.assigned_to_id AS t0_r8, issues.priority_id AS t0_r9, issues.fixed_version_id AS t0_r10, issues.author_id AS t0_r11, issues.lock_version AS t0_r12, issues.created_on AS t0_r13, issues.updated_on AS t0_r14, issues.start_date AS t0_r15, issues.done_ratio AS t0_r16, issues.estimated_hours AS t0_r17, issues.parent_id AS t0_r18, issues.root_id AS t0_r19, issues.lft AS t0_r20, issues.rgt AS t0_r21, issues.is_private AS t0_r22, issues.closed_on AS t0_r23, issues.sprint_id AS t0_r24, issues.position AS t0_r25, projects.id AS t1_r0, projects.name AS t1_r1, projects.description AS t1_r2, projects.homepage AS t1_r3, projects.is_public AS t1_r4, projects.parent_id AS t1_r5, projects.created_on AS t1_r6, projects.updated_on AS t1_r7, projects.identifier AS t1_r8, projects.status AS t1_r9, projects.lft AS t1_r10, projects.rgt AS t1_r11, projects.inherit_members AS t1_r12, projects.product_backlog_id AS t1_r13, issue_statuses.id AS t2_r0, issue_statuses.name AS t2_r1, issue_statuses.is_closed AS t2_r2, issue_statuses.is_default AS t2_r3, issue_statuses.position AS t2_r4, issue_statuses.default_done_ratio AS t2_r5, trackers.id AS t3_r0, trackers.name AS t3_r1, trackers.is_in_chlog AS t3_r2, trackers.position AS t3_r3, trackers.is_in_roadmap AS t3_r4, trackers.fields_bits AS t3_r5, users.id AS t4_r0, users.login AS t4_r1, users.hashed_password AS t4_r2, users.firstname AS t4_r3, users.lastname AS t4_r4, users.mail AS t4_r5, users.admin AS t4_r6, users.status AS t4_r7, users.last_login_on AS t4_r8, users.language AS t4_r9, users.auth_source_id AS t4_r10, users.created_on AS t4_r11, users.updated_on AS t4_r12, users.type AS t4_r13, users.identity_url AS t4_r14, users.mail_notification AS t4_r15, users.salt AS t4_r16, users.must_change_passwd AS t4_r17, enumerations.id AS t5_r0, enumerations.name AS t5_r1, enumerations.position AS t5_r2, enumerations.is_default AS t5_r3, enumerations.type AS t5_r4, enumerations.active AS t5_r5, enumerations.project_id AS t5_r6, enumerations.parent_id AS t5_r7, enumerations.position_name AS t5_r8, sprints.id AS t6_r0, sprints.name AS t6_r1, sprints.description AS t6_r2, sprints.start_date AS t6_r3, sprints.end_date AS t6_r4, sprints.user_id AS t6_r5, sprints.project_id AS t6_r6, sprints.created_on AS t6_r7, sprints.updated_on AS t6_r8, sprints.is_product_backlog AS t6_r9 FROM issues INNER JOIN issue_statuses ON issue_statuses.id = issues.status_id INNER JOIN projects ON projects.id = issues.project_id LEFT OUTER JOIN trackers ON trackers.id = issues.tracker_id LEFT OUTER JOIN users ON users.id = issues.assigned_to_id LEFT OUTER JOIN enumerations ON enumerations.id = issues.priority_id AND enumerations.type IN ('IssuePriority') LEFT OUTER JOIN sprints ON sprints.id = issues.sprint_id WHERE (projects.status <> 9 AND projects.id IN (SELECT em.project_id FROM enabled_modules em WHERE em.name='issue_tracking')) AND ((issues.status_id IN (SELECT id FROM issue_statuses WHERE is_closed=0)) AND projects.id IN (1,2)) AND (((start_date BETWEEN '2014-03-30' AND '2014-05-03') OR (due_date BETWEEN '2014-03-30' AND '2014-05-03')))

Any clue?

Upvotes: 2

Views: 1182

Answers (2)

user3619085
user3619085

Reputation: 11

You need to modify the redmine/app/controller/calendar_controller.rb file.

Add issues before start_date and due_date like this:

events += @query.issues(:include => [:tracker, :assigned_to, :priority], :conditions => ["((issues.start_date BETWEEN ? AND ?) OR (issues.due_date BETWEEN ? AND ?))", @calendar.startdt, @calendar.enddt, @calendar.startdt, @calendar.enddt] )

and restart Redmine.

Upvotes: 1

praaveen V R
praaveen V R

Reputation: 1261

Mysql2::Error: Column 'start_date' in where clause is ambiguous:

when you will get this error is when plugins which have same column name of redmine column name .

eg:start_date

plugins list

1.scrum 2.holidays

these two plugins have same column name start_date.

so one solution is 1. go to calendars.controller and find this line

events += @query.issues(:include => [:tracker, :assigned_to, :priority], :conditions => ["((start_date BETWEEN ? AND ?) OR (due_date BETWEEN ? AND ?))", @calendar.startdt, @calendar.enddt, @calendar.startdt, @calendar.enddt] )

in this line change start_date to issues.start_date.

so should look like this..

events += @query.issues(:include => [:tracker, :assigned_to, :priority], :conditions => ["((issues.start_date BETWEEN ? AND ?) OR (due_date BETWEEN ? AND ?))", @calendar.startdt, @calendar.enddt, @calendar.startdt, @calendar.enddt] )

restart server......

Upvotes: 2

Related Questions