diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index 57a78e9ac5d..5343ef3c229 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -68,6 +68,7 @@ class survey(osv.osv):
'users': fields.many2many('res.users', 'survey_users_rel', 'sid', 'uid', 'Users'),
'send_response': fields.boolean('E-mail Notification on Answer'),
'type': fields.many2one('survey.type', 'Type'),
+ 'invited_user_ids': fields.many2many('res.users', 'survey_invited_user_rel', 'sid', 'uid', 'Invited User'),
}
_defaults = {
'state': lambda * a: "draft",
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index 44bcb4475b5..713f3dbf7a4 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -206,6 +206,9 @@
+
+
+
diff --git a/addons/survey/wizard/survey_selection.py b/addons/survey/wizard/survey_selection.py
index 69cc8e10796..0f7ca8628f0 100644
--- a/addons/survey/wizard/survey_selection.py
+++ b/addons/survey/wizard/survey_selection.py
@@ -62,9 +62,20 @@ class survey_name_wiz(osv.osv_memory):
for sur in surv_obj.browse(cr, uid, [context.get('survey_id',False)]):
result.append((sur.id, sur.title))
return result
+ survey_user_group_id = self.pool.get('res.groups').search(cr, uid, [('name', '=', 'Survey / User')])
group_id = self.pool.get('res.groups').search(cr, uid, [('name', 'in', ('Tools / Manager','Tools / User','Survey / User'))])
user_obj = self.pool.get('res.users')
user_rec = user_obj.read(cr, uid, uid)
+ if survey_user_group_id:
+ if survey_user_group_id == user_rec['groups_id']:
+ for sur in surv_obj.browse(cr, uid, surv_obj.search(cr, uid, [])):
+ if sur.state == 'open':
+ u_list = []
+ for use in sur.invited_user_ids:
+ u_list.append(use.id)
+ if uid in u_list:
+ result.append((sur.id, sur.title))
+ return result
for sur in surv_obj.browse(cr, uid, surv_obj.search(cr, uid, [])):
if sur.state == 'open':
res = False
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index b9740fba6ba..92ba965d880 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -113,7 +113,13 @@ class survey_send_invitation(osv.osv_memory):
error = ""
res_user = ""
user_exists = False
+ new_user = []
attachments = []
+ current_sur = survey_ref.browse(cr, uid, context.get('active_id'), context=context)
+ exist_user = current_sur.invited_user_ids
+ if exist_user:
+ for use in exist_user:
+ new_user.append(use.id)
for id in survey_ref.browse(cr, uid, survey_ids):
report = self.create_report(cr, uid, [id.id], 'report.survey.form', id.title)
file = open(tools.config['addons_path'] + '/survey/report/' + id.title +".pdf")
@@ -134,6 +140,8 @@ class survey_send_invitation(osv.osv_memory):
continue
user = user_ref.search(cr, uid, [('login', "=", addr.email)])
if user:
+ if user[0] not in new_user:
+ new_user.append(user[0])
user = user_ref.browse(cr, uid, user[0])
user_ref.write(cr, uid, user.id, {'survey_id':[[6, 0, survey_ids]]})
mail = record['mail']%{'login':addr.email, 'passwd':user.password, \
@@ -172,11 +180,17 @@ class survey_send_invitation(osv.osv_memory):
'survey_id': [[6, 0, survey_ids]]
}
user = user_ref.create(cr, uid, res_data)
+ if user not in new_user:
+ new_user.append(user)
created+= "- %s (Login: %s, Password: %s)\n" % (addr.name or 'Unknown',\
addr.email, passwd)
else:
error+= "- %s (Login: %s, Password: %s)\n" % (addr.name or 'Unknown',\
addr.email, passwd)
+
+ new_vals = {}
+ new_vals.update({'invited_user_ids':[[6,0,new_user]]})
+ survey_ref.write(cr, uid, context.get('active_id'),new_vals)
note= ""
if created:
note += 'Created users:\n%s\n\n' % (created)