removed calendar and fix
This commit is contained in:
parent
e51b5e3643
commit
bf4ef36341
@ -169,5 +169,6 @@ patch_list = [
|
|||||||
"patches.february_2013.update_company_in_leave_application",
|
"patches.february_2013.update_company_in_leave_application",
|
||||||
"execute:webnotes.conn.sql_ddl('alter table tabSeries change `name` `name` varchar(100)')",
|
"execute:webnotes.conn.sql_ddl('alter table tabSeries change `name` `name` varchar(100)')",
|
||||||
"execute:webnotes.conn.sql('update tabUserRole set parentfield=\"user_roles\" where parentfield=\"userroles\"')",
|
"execute:webnotes.conn.sql('update tabUserRole set parentfield=\"user_roles\" where parentfield=\"userroles\"')",
|
||||||
"patches.february_2013.fix_outstanding"
|
"patches.february_2013.fix_outstanding",
|
||||||
|
"execute:webnotes.delete_doc('Page', 'Calendar')"
|
||||||
]
|
]
|
||||||
@ -1 +0,0 @@
|
|||||||
from __future__ import unicode_literals
|
|
||||||
@ -1,160 +0,0 @@
|
|||||||
// Copyright (c) 2012 Web Notes Technologies Pvt Ltd (http://erpnext.com)
|
|
||||||
//
|
|
||||||
// MIT License (MIT)
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
||||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
||||||
// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
||||||
// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
|
||||||
// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
//
|
|
||||||
|
|
||||||
wn.provide("erpnext.calendar");
|
|
||||||
|
|
||||||
pscript.onload_calendar = function(wrapper) {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
wn.ui.make_app_page({
|
|
||||||
parent: wrapper,
|
|
||||||
single_column: true,
|
|
||||||
title: 'Calendar'
|
|
||||||
});
|
|
||||||
|
|
||||||
wn.require('lib/js/lib/fullcalendar/fullcalendar.css');
|
|
||||||
wn.require('lib/js/lib/fullcalendar/fullcalendar.js');
|
|
||||||
}
|
|
||||||
|
|
||||||
pscript.onshow_calendar = function(wrapper) {
|
|
||||||
if(!wrapper.setup_complete) {
|
|
||||||
erpnext.calendar.setup(wrapper);
|
|
||||||
} else {
|
|
||||||
$("#fullcalendar").fullCalendar("refetchEvents");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
erpnext.calendar.setup = function(wrapper) {
|
|
||||||
wn.model.with_doctype("Event", function() {
|
|
||||||
$('<div id="fullcalendar">').appendTo($(wrapper).find('.layout-main')).fullCalendar({
|
|
||||||
header: {
|
|
||||||
left: 'prev,next today',
|
|
||||||
center: 'title',
|
|
||||||
right: 'month,agendaWeek,agendaDay'
|
|
||||||
},
|
|
||||||
editable: true,
|
|
||||||
selectable: true,
|
|
||||||
selectHelper: true,
|
|
||||||
events: function(start, end, callback) {
|
|
||||||
wn.call({
|
|
||||||
method: 'utilities.page.calendar.calendar.get_events',
|
|
||||||
type: "GET",
|
|
||||||
args: {
|
|
||||||
start: dateutil.obj_to_str(start),
|
|
||||||
end: dateutil.obj_to_str(end),
|
|
||||||
company: wn.user.get_default("company")[0],
|
|
||||||
employee: wn.user.get_default("employee")[0]
|
|
||||||
},
|
|
||||||
callback: function(r) {
|
|
||||||
var events = r.message;
|
|
||||||
$.each(events, function(i, d) {
|
|
||||||
d.editable = d.owner==user;
|
|
||||||
var options = erpnext.calendar.event_options[d.doctype];
|
|
||||||
if(options && options.prepare)
|
|
||||||
options.prepare(d);
|
|
||||||
});
|
|
||||||
callback(events);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
eventClick: function(event, jsEvent, view) {
|
|
||||||
// edit event description or delete
|
|
||||||
var options = erpnext.calendar.event_options[event.doctype];
|
|
||||||
if(options && options.click)
|
|
||||||
options.click(event);
|
|
||||||
},
|
|
||||||
eventDrop: function(event, dayDelta, minuteDelta, allDay, revertFunc) {
|
|
||||||
erpnext.calendar.update_event(event);
|
|
||||||
},
|
|
||||||
eventResize: function(event, dayDelta, minuteDelta, allDay, revertFunc) {
|
|
||||||
erpnext.calendar.update_event(event);
|
|
||||||
},
|
|
||||||
select: function(startDate, endDate, allDay, jsEvent, view) {
|
|
||||||
if(jsEvent.day_clicked && view.name=="month")
|
|
||||||
return;
|
|
||||||
var event = wn.model.get_new_doc("Event");
|
|
||||||
event.starts_on = wn.datetime.get_datetime_as_string(startDate);
|
|
||||||
event.ends_on = wn.datetime.get_datetime_as_string(endDate);
|
|
||||||
event.all_day = allDay ? 1 : 0;
|
|
||||||
wn.set_route("Form", "Event", event.name);
|
|
||||||
},
|
|
||||||
dayClick: function(date, allDay, jsEvent, view) {
|
|
||||||
jsEvent.day_clicked = true;
|
|
||||||
$("#fullcalendar").fullCalendar("gotoDate", date)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
wrapper.setup_complete = true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
erpnext.calendar.update_event = function(event) {
|
|
||||||
wn.model.remove_from_locals("Event", event.id);
|
|
||||||
wn.call({
|
|
||||||
module: "utilities",
|
|
||||||
page: "calendar",
|
|
||||||
method: "update_event",
|
|
||||||
args: {
|
|
||||||
"start": wn.datetime.get_datetime_as_string(event.start),
|
|
||||||
"end": wn.datetime.get_datetime_as_string(event.end),
|
|
||||||
"all_day": event.allDay,
|
|
||||||
"name": event.id
|
|
||||||
},
|
|
||||||
callback: function(r) {
|
|
||||||
if(r.exc) {
|
|
||||||
show_alert("Unable to update event.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
erpnext.calendar.event_options = {
|
|
||||||
"Leave Block List Date": {
|
|
||||||
prepare: function(d) {
|
|
||||||
d.color = "#aaa";
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Event": {
|
|
||||||
prepare: function(d) {
|
|
||||||
if(d.event_type=="Public") {
|
|
||||||
d.color = "#57AF5B";
|
|
||||||
}
|
|
||||||
},
|
|
||||||
click: function(event) {
|
|
||||||
wn.set_route("Form", "Event", event.id);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Leave Application": {
|
|
||||||
prepare: function(d) {
|
|
||||||
d.color = "#4F9F96";
|
|
||||||
},
|
|
||||||
click: function(event) {
|
|
||||||
if(event.employee==wn.user.get_default("employee")[0]) {
|
|
||||||
wn.set_route("Form", "Leave Application", event.id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,85 +0,0 @@
|
|||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import webnotes
|
|
||||||
from webnotes import _
|
|
||||||
|
|
||||||
@webnotes.whitelist()
|
|
||||||
def get_events(start, end, employee=None, company=None):
|
|
||||||
roles = webnotes.get_roles()
|
|
||||||
events = webnotes.conn.sql("""select name as `id`, subject as title,
|
|
||||||
starts_on as `start`, ends_on as `end`, "Event" as doctype, owner,
|
|
||||||
all_day as allDay, event_type
|
|
||||||
from tabEvent where (
|
|
||||||
(starts_on between %s and %s)
|
|
||||||
or (ends_on between %s and %s)
|
|
||||||
)
|
|
||||||
and (event_type='Public' or owner=%s
|
|
||||||
or exists(select * from `tabEvent User` where
|
|
||||||
`tabEvent User`.parent=tabEvent.name and person=%s)
|
|
||||||
or exists(select * from `tabEvent Role` where
|
|
||||||
`tabEvent Role`.parent=tabEvent.name
|
|
||||||
and `tabEvent Role`.role in ('%s')))""" % ('%s', '%s', '%s', '%s', '%s', '%s',
|
|
||||||
"', '".join(roles)), (start, end, start, end,
|
|
||||||
webnotes.session.user, webnotes.session.user), as_dict=1)
|
|
||||||
|
|
||||||
|
|
||||||
if employee:
|
|
||||||
add_block_dates(events, start, end, employee, company)
|
|
||||||
add_department_leaves(events, start, end, employee, company)
|
|
||||||
|
|
||||||
return events
|
|
||||||
|
|
||||||
def add_department_leaves(events, start, end, employee, company):
|
|
||||||
department = webnotes.conn.get_value("Employee", employee, "department")
|
|
||||||
|
|
||||||
if not department:
|
|
||||||
return
|
|
||||||
|
|
||||||
# department leaves
|
|
||||||
department_employees = webnotes.conn.sql_list("select name from tabEmployee where department=%s",
|
|
||||||
department)
|
|
||||||
|
|
||||||
for d in webnotes.conn.sql("""select name, from_date, to_date, employee_name, half_day,
|
|
||||||
status, employee
|
|
||||||
from `tabLeave Application` where
|
|
||||||
(from_date between %s and %s or to_date between %s and %s)
|
|
||||||
and docstatus < 2
|
|
||||||
and status!="Rejected"
|
|
||||||
and employee in ('%s')""" % ("%s", "%s", "%s", "%s", "', '".join(department_employees)),
|
|
||||||
(start, end, start, end), as_dict=True):
|
|
||||||
events.append({
|
|
||||||
"id": d.name,
|
|
||||||
"employee": d.employee,
|
|
||||||
"doctype": "Leave Application",
|
|
||||||
"start": d.from_date,
|
|
||||||
"end": d.to_date,
|
|
||||||
"allDay": True,
|
|
||||||
"status": d.status,
|
|
||||||
"title": _("Leave by") + " " + d.employee_name + \
|
|
||||||
(d.half_day and _(" (Half Day)") or "")
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
def add_block_dates(events, start, end, employee, company):
|
|
||||||
# block days
|
|
||||||
from hr.doctype.leave_block_list.leave_block_list import get_applicable_block_dates
|
|
||||||
|
|
||||||
cnt = 0
|
|
||||||
block_dates = get_applicable_block_dates(start, end, employee, company, all_lists=True)
|
|
||||||
|
|
||||||
for block_date in block_dates:
|
|
||||||
events.append({
|
|
||||||
"doctype": "Leave Block List Date",
|
|
||||||
"start": block_date.block_date,
|
|
||||||
"title": _("Leave Blocked") + ": " + block_date.reason,
|
|
||||||
"id": "_" + str(cnt),
|
|
||||||
"allDay": True
|
|
||||||
})
|
|
||||||
cnt+=1
|
|
||||||
|
|
||||||
|
|
||||||
@webnotes.whitelist()
|
|
||||||
def update_event(name, start, end):
|
|
||||||
webnotes.conn.sql("""update tabEvent set starts_on=%s, ends_on=%s where
|
|
||||||
name=%s""", (start, end, name))
|
|
||||||
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"owner": "Administrator",
|
|
||||||
"docstatus": 0,
|
|
||||||
"creation": "2012-02-24 11:24:12",
|
|
||||||
"modified_by": "Administrator",
|
|
||||||
"modified": "2012-02-24 11:24:12"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "__common__",
|
|
||||||
"title": "Calendar",
|
|
||||||
"module": "Utilities",
|
|
||||||
"doctype": "Page",
|
|
||||||
"page_name": "calendar",
|
|
||||||
"standard": "Yes"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "calendar",
|
|
||||||
"doctype": "Page"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
Loading…
x
Reference in New Issue
Block a user