@@ -1031,24 +1031,41 @@ class Activity(_Proxy):
10311031
10321032 - get only last 2 events from a project::
10331033
1034- >>> p .activity.list(count=2)
1034+ >>> project .activity.list(count=2)
10351035 [{'event': 'job:completed', 'job': '123/2/3', 'user': 'jobrunner'},
1036- {'event': 'job:cancelled', 'job': '123/2/3', 'user': 'john'}]
1036+ {'event': 'job:started', 'job': '123/2/3', 'user': 'john'}]
1037+
1038+ - post a new event::
1039+
1040+ >>> event = {'event': 'job:completed',
1041+ 'job': '123/2/4',
1042+ 'user': 'jobrunner'}
1043+ >>> project.activity.add(event)
1044+
1045+ - post multiple events at once::
1046+
1047+ >>> events = [
1048+ {'event': 'job:completed', 'job': '123/2/5', 'user': 'jobrunner'},
1049+ {'event': 'job:cancelled', 'job': '123/2/6', 'user': 'john'},
1050+ ]
1051+ >>> project.activity.add(events)
1052+
10371053 """
10381054 def __init__ (self , * args , ** kwargs ):
10391055 super (Activity , self ).__init__ (* args , ** kwargs )
10401056 self ._proxy_methods ([('iter' , 'list' )])
10411057 self ._wrap_iter_methods (['iter' ])
10421058
1043- def add (self , * args , ** kwargs ):
1044- entry = dict (* args , ** kwargs )
1045- return self .post (entry )
1046-
1047- def post (self , _value , ** kwargs ):
1048- jobkey = _value .get ('job' ) or kwargs .get ('job' )
1049- if jobkey and parse_job_key (jobkey ).projectid != self .key :
1050- raise ValueError ('Please use same project id' )
1051- self ._origin .post (_value , ** kwargs )
1059+ def add (self , values , ** kwargs ):
1060+ if not isinstance (values , list ):
1061+ values = list (values )
1062+ for activity in values :
1063+ if not isinstance (activity , dict ):
1064+ raise ValueError ("Please pass events as dictionaries" )
1065+ jobkey = activity .get ('job' )
1066+ if jobkey and parse_job_key (jobkey ).projectid != self .key :
1067+ raise ValueError ('Please use same project id' )
1068+ self ._origin .post (values , ** kwargs )
10521069
10531070
10541071class Collections (_Proxy ):
0 commit comments