1
1
# Copyright 2018 ForgeFlow, S.L.
2
2
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3
3
from odoo .exceptions import ValidationError
4
- from odoo .tests .common import TransactionCase
4
+ from odoo .tests .common import Form , SavepointCase
5
5
6
6
7
- class TestMailActivityTeam (TransactionCase ):
8
- def setUp (self ):
9
- super (TestMailActivityTeam , self ).setUp ()
10
-
7
+ class TestMailActivityTeam (SavepointCase ):
8
+ @classmethod
9
+ def setUpClass (cls ):
10
+ super ().setUpClass ()
11
+ self = cls
11
12
self .env ["mail.activity.team" ].search ([]).unlink ()
12
13
13
14
self .employee = self .env ["res.users" ].create (
@@ -125,6 +126,18 @@ def setUp(self):
125
126
}
126
127
)
127
128
129
+ def test_activity_members (self ):
130
+ self .team1 .member_ids |= self .employee2
131
+ self .partner_client .refresh ()
132
+ self .assertIn (self .employee2 , self .partner_client .activity_team_user_ids )
133
+ self .assertIn (self .employee , self .partner_client .activity_team_user_ids )
134
+ self .assertEqual (
135
+ self .partner_client ,
136
+ self .env ["res.partner" ].search (
137
+ [("activity_team_user_ids" , "=" , self .employee .id )]
138
+ ),
139
+ )
140
+
128
141
def test_team_and_user_onchange (self ):
129
142
with self .assertRaises (ValidationError ):
130
143
self .team1 .member_ids = [(3 , self .employee .id )]
@@ -139,46 +152,88 @@ def test_missing_activities(self):
139
152
self .assertEqual (self .team1 .count_missing_activities , 0 )
140
153
self .assertEqual (self .act1 .team_id , self .team1 )
141
154
142
- def test_team_onchanges (self ):
143
- self .assertFalse (
144
- self .team2 .user_id , "Error: Team 2 should not have a Team Leader yet."
145
- )
146
- self .team2 .user_id = self .employee
147
- self .team2 .member_ids = [(3 , self .employee .id )]
148
- self .team2 ._onchange_member_ids ()
149
- self .assertFalse (self .team2 .user_id )
150
-
151
155
def test_leader_onchange (self ):
152
156
self .team2 .user_id = self .employee3
153
157
self .team2 ._onchange_user_id ()
154
158
self .assertTrue (self .employee3 in self .team2 .member_ids )
155
159
156
- def test_activity_onchanges (self ):
160
+ def test_activity_onchanges_keep_user (self ):
161
+ self .assertEqual (
162
+ self .act2 .team_id , self .team1 , "Error: Activity 2 should have Team 1."
163
+ )
164
+ with Form (self .act2 ) as form :
165
+ form .team_id = self .env ["mail.activity.team" ]
166
+ self .assertEqual (form .user_id , self .employee )
167
+
168
+ def test_activity_onchanges_user_no_member_team (self ):
169
+ self .assertEqual (
170
+ self .act2 .team_id , self .team1 , "Error: Activity 2 should have Team 1."
171
+ )
172
+ with Form (self .act2 ) as form :
173
+ form .user_id = self .employee2
174
+ self .assertEqual (form .team_id , self .team2 )
175
+
176
+ def test_activity_onchanges_user_no_team (self ):
177
+ self .assertEqual (
178
+ self .act2 .team_id , self .team1 , "Error: Activity 2 should have Team 1."
179
+ )
180
+ with Form (self .act2 ) as form :
181
+ form .team_id = self .env ["mail.activity.team" ]
182
+ form .user_id = self .employee2
183
+ self .assertEqual (form .team_id , self .team2 )
184
+
185
+ def test_activity_onchanges_team_no_member (self ):
186
+ self .assertEqual (
187
+ self .act2 .team_id , self .team1 , "Error: Activity 2 should have Team 1."
188
+ )
189
+ self .team2 .user_id = False
190
+ self .team2 .member_ids = False
191
+ with Form (self .act2 ) as form :
192
+ form .team_id = self .team2
193
+ self .assertFalse (form .user_id )
194
+
195
+ def test_activity_onchanges_team_different_member (self ):
196
+ self .assertEqual (
197
+ self .act2 .team_id , self .team1 , "Error: Activity 2 should have Team 1."
198
+ )
199
+ self .team2 .user_id = self .employee2
200
+ self .team2 .member_ids = self .employee2
201
+ with Form (self .act2 ) as form :
202
+ form .team_id = self .team2
203
+ self .assertEqual (form .user_id , self .employee2 )
204
+
205
+ def test_activity_onchanges_team_different_member_no_leader (self ):
206
+ self .assertEqual (
207
+ self .act2 .team_id , self .team1 , "Error: Activity 2 should have Team 1."
208
+ )
209
+ self .team2 .user_id = False
210
+ self .team2 .member_ids = self .employee2
211
+ with Form (self .act2 ) as form :
212
+ form .team_id = self .team2
213
+ self .assertEqual (form .user_id , self .employee2 )
214
+
215
+ def test_activity_onchanges_activity_type_set_team (self ):
216
+ self .assertEqual (
217
+ self .act2 .team_id , self .team1 , "Error: Activity 2 should have Team 1."
218
+ )
219
+ self .activity1 .default_team_id = self .team2
220
+ self .assertEqual (self .act2 .activity_type_id , self .activity2 )
221
+ with Form (self .act2 ) as form :
222
+ form .activity_type_id = self .activity1
223
+ self .assertEqual (form .team_id , self .team2 )
224
+
225
+ def test_activity_onchanges_activity_type_no_team (self ):
157
226
self .assertEqual (
158
227
self .act2 .team_id , self .team1 , "Error: Activity 2 should have Team 1."
159
228
)
160
- self .act2 .team_id = False
161
- self .act2 ._onchange_team_id ()
162
- self .assertEqual (self .act2 .user_id , self .employee )
163
- self .act2 .team_id = self .team2
164
- self .act2 ._onchange_team_id ()
165
- self .assertEqual (self .act2 .user_id , self .employee )
166
- self .act2 .user_id = self .employee2
167
- self .act2 ._onchange_user_id ()
168
- self .assertEqual (self .act2 .team_id , self .team2 )
229
+ self .assertEqual (self .act2 .activity_type_id , self .activity2 )
230
+ with Form (self .act2 ) as form :
231
+ form .activity_type_id = self .activity1
232
+ self .assertEqual (form .team_id , self .team1 )
233
+
234
+ def test_activity_constrain (self ):
169
235
with self .assertRaises (ValidationError ):
170
236
self .act2 .write ({"user_id" : self .employee2 .id , "team_id" : self .team1 .id })
171
- self .team1 .user_id = False
172
- self .act2 .user_id = False
173
- self .act2 ._onchange_user_id ()
174
- self .team2 .member_ids = [(4 , self .employee3 .id )]
175
- self .act2 .team_id = self .team1
176
- self .act2 .team_id = False
177
- self .act2 .user_id = self .employee3
178
- self .act2 ._onchange_user_id ()
179
- self .act2 .team_id = self .team2
180
- self .team2 .member_ids = [(3 , self .act2 .user_id .id )]
181
- self .act2 ._onchange_team_id ()
182
237
183
238
def test_schedule_activity (self ):
184
239
"""Correctly assign teams to auto scheduled activities. Those won't
@@ -222,6 +277,23 @@ def test_activity_count(self):
222
277
.systray_get_activities ()
223
278
)
224
279
self .assertEqual (res [0 ]["total_count" ], 0 )
280
+ self .assertEqual (res [0 ]["today_count" ], 1 )
281
+ partner_record = self .employee .partner_id .with_user (self .employee .id )
282
+ self .activity2 .default_team_id = self .team2
283
+ activity = partner_record .activity_schedule (
284
+ activity_type_id = self .activity2 .id , user_id = self .employee2 .id
285
+ )
286
+ activity .flush ()
287
+ res = (
288
+ self .env ["res.users" ]
289
+ .with_user (self .employee .id )
290
+ .with_context ({"team_activities" : True })
291
+ .systray_get_activities ()
292
+ )
293
+ self .assertEqual (res [0 ]["total_count" ], 1 )
294
+ self .assertEqual (res [0 ]["today_count" ], 2 )
295
+ res = self .env ["res.users" ].with_user (self .employee .id ).systray_get_activities ()
296
+ self .assertEqual (res [0 ]["total_count" ], 2 )
225
297
226
298
def test_activity_schedule_next (self ):
227
299
self .activity1 .write (
0 commit comments