fixed conflict

This commit is contained in:
Nabin Hait
2013-04-08 12:44:57 +05:30
15 changed files with 301 additions and 178 deletions

View File

@@ -3,13 +3,13 @@ wn.query_reports["Daily Time Log Summary"] = {
{
"fieldname":"from_date",
"label": "From Date",
"fieldtype": "Datetime",
"fieldtype": "Date",
"default": wn.datetime.get_today()
},
{
"fieldname":"to_date",
"label": "To Date",
"fieldtype": "Datetime",
"fieldtype": "Date",
"default": wn.datetime.get_today()
},
]

View File

@@ -2,27 +2,33 @@ from __future__ import unicode_literals
import webnotes
def execute(filters=None):
if not filters: filters = {}
columns = ["Employee::150", "From Datetime::120", "To Datetime::120", "Hours::70", "Task::150",
"Project:Link/Project:120", "Status::70"]
if not filters:
filters = {}
elif filters.get("to_date"):
filters["to_date"] = filters.get("to_date") + "24:00:00"
columns = ["Time Log:Link/Time Log:120", "Employee::150", "From Datetime::140",
"To Datetime::140", "Hours::70", "Activity Type::120", "Task:Link/Task:150",
"Task Subject::180", "Project:Link/Project:120", "Status::70"]
profile_map = get_profile_map()
task_map = get_task_map()
conditions = build_conditions(filters)
time_logs = webnotes.conn.sql("""select * from `tabTime Log`
where docstatus < 2 %s order by owner asc""" % (conditions,), filters, as_dict=1)
data = []
profiles = [time_logs[0].owner]
where docstatus < 2 %s order by owner asc""" % (conditions, ), filters, as_dict=1)
data = []
if time_logs:
profiles = [time_logs[0].owner]
for tl in time_logs:
if tl.owner not in profiles:
profiles.append(tl.owner)
data.append([])
data.append([profile_map[tl.owner], tl.from_time, tl.to_time, tl.hours,
tl.task, tl.project, tl.status])
data.append([tl.name, profile_map[tl.owner], tl.from_time, tl.to_time, tl.hours,
tl.activity_type, tl.task, task_map.get(tl.task), tl.project, tl.status])
return columns, data
@@ -36,11 +42,24 @@ def get_profile_map():
return profile_map
def get_task_map():
tasks = webnotes.conn.sql("""select name, subject from tabTask""", as_dict=1)
task_map = {}
for t in tasks:
task_map.setdefault(t.name, []).append(t.subject)
return task_map
def build_conditions(filters):
conditions = ""
if filters.get("from_date"):
conditions += " and from_time >= %(from_date)s"
if filters.get("to_date"):
conditions += " and to_time <= %(to_date)s"
from webnotes.widgets.reportview import build_match_conditions
match_conditions = build_match_conditions("Time Log")
if match_conditions:
conditions += " and %s" % match_conditions
return conditions