oerppy-hackers team mailing list archive
-
oerppy-hackers team
-
Mailing list archive
-
Message #00015
[Branch ~oerppy-hackers/oerppy/trunk] Rev 35: * Lots of fixes to the data models (possible now that I have access to the
------------------------------------------------------------
revno: 35
committer: duncan@xxxxxxxxxx
branch nick: trunk
timestamp: Fri 2011-06-03 08:19:21 -0600
message:
* Lots of fixes to the data models (possible now that I have access to the
OpenERP data and know what the returned structures look like) with some
corresponding changes to the unit tests.
* Fixed variable name typos in CanonicalAddons as well as some semantic
changes to method names.
* Fixed raw export to output as JSON.
modified:
oerppy/addons/canonical/query.py
oerppy/model.py
oerppy/scripting/base.py
oerppy/service.py
oerppy/tests/test_model.py
--
lp:oerppy
https://code.launchpad.net/~oerppy-hackers/oerppy/trunk
Your team oerppy Hackers is subscribed to branch lp:oerppy.
To unsubscribe from this branch go to https://code.launchpad.net/~oerppy-hackers/oerppy/trunk/+edit-subscription
=== modified file 'oerppy/addons/canonical/query.py'
--- oerppy/addons/canonical/query.py 2011-06-02 22:46:11 +0000
+++ oerppy/addons/canonical/query.py 2011-06-03 14:19:21 +0000
@@ -68,8 +68,9 @@
('week','<=', last_week.isoformat())
],
fields=[])
+ return weeks
- def get_timeentry(self, week):
+ def get_users_timeentry(self, week, user_ids):
"""
Get the timeentry for a given week.
"""
@@ -107,7 +108,7 @@
weeks = self.get_all_timeentry_weeks()
user_ids = self.get_oem_user_ids()
- users = self.get_users_names(user_ids)
+ users = self.get_user_names(user_ids)
# build list of names for each user id
user_list = {}
for u in users:
@@ -116,8 +117,7 @@
records = []
for week in weeks:
# get timesheets for the week
- timesheets = self.get_timeentry(week["week"])
-
+ timesheets = self.get_users_timeentry(week, user_ids)
# store lookup of total time by user for this week
total_time = {}
if timesheets:
@@ -129,7 +129,7 @@
if not total_time.get(u,None):
# missing timesheet
line = {
- 'Week Commencing': w['week'],
+ 'Week Commencing': week['week'],
'User': user_list[u],
'Department': self.user_dept.get(u, '?'),
'Total Time': 0,
@@ -137,7 +137,7 @@
}
else:
line = {
- 'Week Commencing': w['week'],
+ 'Week Commencing': week['week'],
'User': user_list[u],
'Department': self.user_dept.get(u, '?'),
'Total Time': total_time.get(u,{}).get('time',0),
=== modified file 'oerppy/model.py'
--- oerppy/model.py 2011-06-02 22:46:11 +0000
+++ oerppy/model.py 2011-06-03 14:19:21 +0000
@@ -14,7 +14,10 @@
def __init__(self, results, *args, **kwds):
for row in results:
- self.add(self.model(row, *args, **kwds))
+ try:
+ self.add(self.model(row, *args, **kwds))
+ except:
+ import pdb;pdb.set_trace()
class HREmployee(Model):
@@ -23,10 +26,20 @@
"hr.employee" entity.
"""
def __init__(self, row):
+ user_data = row["user_id"]
+ if user_data:
+ self.user_id = user_data[0]
+ else:
+ self.user_id = None
self.name = row["name"][0]
- self.department_id = row["department_id"][1]
self.resource_id = row["resource_id"][0]
- self.user_id = row["user_id"][0]
+ department_data = row["department_id"]
+ if department_data:
+ self.department_id = department_data[0]
+ self.department_name = department_data[1]
+ else:
+ self.department_id = None
+ self.department_name = None
class HREmployeeSet(ResultSet):
@@ -44,8 +57,8 @@
table = {}
table["unknown"] = 0
for user in self:
- if user.department_id and user.user_id:
- table[user.user_id] = user.department_id
+ if user.department_name and user.user_id:
+ table[user.user_id] = user.department_name
elif user.user_id:
table[user.user_id] = "?"
else:
@@ -62,7 +75,7 @@
self.project_id = row['project_id'][1]
self.task_id = row['task_id'][1]
self.user_id = row['user_id'][1]
- self.department_id = depts.get(self.user_id, "?")
+ self.department_name = depts.get(self.user_id, "?")
self.hours = row['hours']
self.date = row['date']
self.year = int(row['date'][0:4])
=== modified file 'oerppy/scripting/base.py'
--- oerppy/scripting/base.py 2011-06-02 17:25:28 +0000
+++ oerppy/scripting/base.py 2011-06-03 14:19:21 +0000
@@ -1,4 +1,5 @@
from optparse import OptionParser
+import sys
from oerppy import config, const, service
@@ -86,7 +87,8 @@
fd = open(options.output_filename, "w+")
# dispatch the appropriate export based on the format option
if options.export_format == const.EXPORT_RAW:
- fd.write(data)
+ import json
+ fd.write(json.dumps(data))
elif options.export_format == const.EXPORT_CSV:
export.export_csv(data, fd)
#elif options.export_format == const.EXPORT_GOOGLE_DOCS:
=== modified file 'oerppy/service.py'
--- oerppy/service.py 2011-06-02 19:03:01 +0000
+++ oerppy/service.py 2011-06-03 14:19:21 +0000
@@ -79,7 +79,6 @@
"""
uri = self.get_uri()
if purge or type(self._proxy) == type(None):
- print uri
self._proxy = xmlrpclib.ServerProxy(uri, allow_none=1)
return self._proxy
=== modified file 'oerppy/tests/test_model.py'
--- oerppy/tests/test_model.py 2011-06-02 22:46:11 +0000
+++ oerppy/tests/test_model.py 2011-06-03 14:19:21 +0000
@@ -3,74 +3,60 @@
from oerppy import model
+user_results = [
+ {"name": ["Bob"],
+ "user_id": [314],
+ "department_id": [1, "Crypto"],
+ "resource_id": [34]},
+ {"name": ["Alice"],
+ "user_id": [315],
+ "department_id": [2, "Maths"],
+ "resource_id": [37]},
+ {"name": ["Carol"],
+ "user_id": [316],
+ "department_id": False,
+ "resource_id": [42]},
+ ]
+
+
class HRTestCase(unittest.TestCase):
- def setUp(self):
- self.user_results = [
- {"name": ["Bob"],
- "user_id": [314],
- "department_id": ["what's this field?", 1],
- "resource_id": [34]},
- {"name": ["Alice"],
- "user_id": [315],
- "department_id": ["UKN", 2],
- "resource_id": [37]},
- {"name": ["Carol"],
- "user_id": [316],
- "department_id": ["UKN", None],
- "resource_id": [42]},
- ]
-
def test_hr_employee(self):
- employee = model.HREmployee(self.user_results[1])
+ employee = model.HREmployee(user_results[1])
self.assertEqual(employee.user_id, 315)
self.assertEqual(employee.name, "Alice")
self.assertEqual(employee.department_id, 2)
self.assertEqual(employee.resource_id, 37)
def test_hr_employee_set(self):
- results = model.HREmployeeSet(self.user_results)
+ results = model.HREmployeeSet(user_results)
self.assertEqual(len(results), 3)
user = results.get_user(314)
self.assertEqual(user.name, "Bob")
table = results.build_department_lookup_table()
- self.assertEqual(table.get(315), 2)
+ self.assertEqual(table.get(315), "Maths")
self.assertEqual(table.get(316), "?")
class ProjectTaskWorkTestCase(unittest.TestCase):
def setUp(self):
- self.user_results = [
- {"name": ["Bob"],
- "user_id": [314],
- "department_id": ["what's this field?", 1],
- "resource_id": [34]},
- {"name": ["Alice"],
- "user_id": [315],
- "department_id": ["UKN", 2],
- "resource_id": [37]},
- {"name": ["Carol"],
- "user_id": [316],
- "department_id": ["UKN", None],
- "resource_id": [42]},
- ]
self.work_results = [
{"project_id": ["UKN", 1],
"task_id": ["UKN", 1001],
"user_id": ["UKN", 314],
"hours": 273,
- "department_id": ["what's this field?", 1],
+ "department_id": [1, "Crypto"],
"date": "2011-05-01",
"week_start": 172},
{"project_id": ["UKN", 2],
"task_id": ["UKN", 1002],
"user_id": ["UKN", 315],
"hours": 735,
- "department_id": ["what's this field?", 2],
+ "department_id": [2, "Maths"],
"date": "2011-05-01",
"week_start": 172},
]
- self.results = model.HREmployeeSet(self.user_results)
+ self.results = model.HREmployeeSet(user_results)
self.table = self.results.build_department_lookup_table()
def test_project_task_work(self):
@@ -79,7 +65,7 @@
self.assertEqual(work.project_id, 2)
self.assertEqual(work.task_id, 1002)
self.assertEqual(work.user_id, 315)
- self.assertEqual(work.department_id, 2)
+ self.assertEqual(work.department_name, "Maths")
self.assertEqual(work.hours, 735)
self.assertEqual(work.date, "2011-05-01")
self.assertEqual(work.year, 2011)