Amit Patel (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-addons/trunk-addons13-survey-apa into 
lp:openobject-addons.

Requested reviews:
  OpenERP Core Team (openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-addons13-survey-apa/+merge/128671
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-addons13-survey-apa/+merge/128671
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/trunk-addons13-survey-apa.
=== modified file 'survey/survey.py'
--- survey/survey.py	2012-10-02 10:29:15 +0000
+++ survey/survey.py	2012-10-09 10:09:28 +0000
@@ -77,6 +77,7 @@
         'tot_comp_survey': lambda * a: 0,
         'send_response': lambda * a: 1,
         'response_user': lambda * a:1,
+        'date_open': strftime("%Y-%m-%d %H:%M:%S"),
     }
 
     def survey_open(self, cr, uid, ids, arg):
@@ -163,10 +164,14 @@
             'context': context
         }
     def test_survey(self, cr, uid, ids, context=None):
-        sur_obj = self.read(cr, uid, ids,['title'], context=context)
+        sur_obj = self.read(cr, uid, ids,['title','page_ids'], context=context)
         for sur in sur_obj:
             name = sur['title']
-            context.update({'active':True,'survey_id': ids[0]})
+            pages = sur['page_ids']
+            if not pages:
+                raise osv.except_osv(_('Warning!'), _('This survey has no pages defined. Please define pages first.'))
+            else:
+                context.update({'active':True,'survey_id': ids[0]})
         return {
             'view_type': 'form',
             'view_mode': 'form',

=== modified file 'survey/survey_view.xml'
--- survey/survey_view.xml	2012-10-04 14:24:48 +0000
+++ survey/survey_view.xml	2012-10-09 10:09:28 +0000
@@ -38,24 +38,24 @@
                     <div class="oe_title">
                         <label for="title" class="oe_edit_only"/>
                         <h1>
-                            <field name="title"/>
+                            <field name="title" attrs="{'readonly':[('state','=','close')]}"/>
                         </h1>
                     </div>
                     <group>
                         <group>
                             <field name="id" invisible="1"/>
-                            <field name="responsible_id" class="oe_inline"/>
-                            <field name="send_response"/>
-                            <field name="type"/>
+                            <field name="responsible_id" class="oe_inline" attrs="{'readonly':[('state','=','close')]}"/>
+                            <field name="send_response" attrs="{'readonly':[('state','=','close')]}"/>
+                            <field name="type" attrs="{'readonly':[('state','=','close')]}"/>
                         </group>
                         <group>
-                            <field name="max_response_limit" attrs="{'readonly':[('state','in',('open','close'))]}"/>
-                            <field name="response_user" attrs="{'readonly':[('state','in',('open','close'))]}"/>
+                            <field name="max_response_limit" attrs="{'readonly':[('state','=','close')]}"/>
+                            <field name="response_user" attrs="{'readonly':[('state','=','close')]}"/>
                         </group>
                      </group>
                      <notebook>
                         <page string="Survey Details">
-                            <field name="page_ids" colspan="4" mode="tree">
+                            <field name="page_ids" colspan="4" mode="tree" attrs="{'readonly':[('state','=','close')]}">
                                 <form string="Survey Page" version="7.0">
                                     <sheet>
                                     <label for="title" class="oe_edit_only"/>
@@ -212,10 +212,10 @@
                                     </sheet>
                                     </form>
                                 </field>
-                            <field name="note" placeholder="Survey description..."/>
+                            <field name="note" placeholder="Survey description..." attrs="{'readonly':[('state','=','close')]}"/>
                         </page>
                         <page string="Invited User">
-                            <field name="invited_user_ids" readonly="1"/>
+                            <field name="invited_user_ids" attrs="{'readonly':[('state','=','close')]}"/>
                         </page>
                         <page string="History">
                             <group>

=== modified file 'survey/wizard/survey_answer.py'
--- survey/wizard/survey_answer.py	2012-10-02 10:29:15 +0000
+++ survey/wizard/survey_answer.py	2012-10-09 10:09:28 +0000
@@ -112,28 +112,33 @@
                 flag = False
                 fields = {}
                 if sur_name_read.page == "next" or sur_name_rec.page_no == -1:
-                    if total_pages > sur_name_rec.page_no + 1:
-                        if ((context.has_key('active') and not context.get('active', False)) \
-                                    or not context.has_key('active')) and not sur_name_rec.page_no + 1:
-                            if sur_rec.state != "open" :
-                                raise osv.except_osv(_('Warning!'),_("You cannot answer because the survey is not open."))
-                            cr.execute('select count(id) from survey_history where user_id=%s\
-                                                    and survey_id=%s', (uid,survey_id))
-                            res = cr.fetchone()[0]
-                            user_limit = survey_obj.browse(cr, uid, survey_id)
-                            user_limit = user_limit.response_user
-                            if user_limit and res >= user_limit:
-                                raise osv.except_osv(_('Warning!'),_("You cannot answer this survey more than %s times.") % (user_limit))
-
-                        if sur_rec.max_response_limit and sur_rec.max_response_limit <= sur_rec.tot_start_survey and not sur_name_rec.page_no + 1:
-                            survey_obj.write(cr, uid, survey_id, {'state':'close', 'date_close':strftime("%Y-%m-%d %H:%M:%S")})
-
-                        p_id = p_id[sur_name_rec.page_no + 1]
-                        surv_name_wiz.write(cr, uid, [context['sur_name_id'],], {'page_no' : sur_name_rec.page_no + 1})
-                        flag = True
-                        page_number += 1
+                    if total_pages:
+                        if total_pages > sur_name_rec.page_no + 1:
+                            if ((context.has_key('active') and not context.get('active', False)) \
+                                        or not context.has_key('active')) and not sur_name_rec.page_no + 1:
+                                if sur_rec.state != "open" :
+                                    raise osv.except_osv(_('Warning!'),_("You cannot answer because the survey is not open."))
+                                cr.execute('select count(id) from survey_history where user_id=%s\
+                                                        and survey_id=%s', (uid,survey_id))
+                                res = cr.fetchone()[0]
+                                user_limit = survey_obj.browse(cr, uid, survey_id)
+                                user_limit = user_limit.response_user
+                                if user_limit and res >= user_limit:
+                                    raise osv.except_osv(_('Warning!'),_("You cannot answer this survey more than %s times.") % (user_limit))
+    
+                            if sur_rec.max_response_limit and sur_rec.max_response_limit <= sur_rec.tot_start_survey and not sur_name_rec.page_no + 1:
+                                survey_obj.write(cr, uid, survey_id, {'state':'close', 'date_close':strftime("%Y-%m-%d %H:%M:%S")})
+    
+                            p_id = p_id[sur_name_rec.page_no + 1]
+                            surv_name_wiz.write(cr, uid, [context['sur_name_id'],], {'page_no' : sur_name_rec.page_no + 1})
+                            flag = True
+                            page_number += 1
+                    else:
+                        raise osv.except_osv(_('Warning!'),_('This survey has no pages defined. Please define the pages first.'))
                     if sur_name_rec.page_no > - 1:
                         pre_button = True
+                    else:
+                        flag = True
                 else:
                     if sur_name_rec.page_no != 0:
                         p_id = p_id[sur_name_rec.page_no - 1]
@@ -146,7 +151,15 @@
                         pre_button = True
                 if flag:
                     pag_rec = page_obj.browse(cr, uid, p_id, context=context)
-                    xml_form = etree.Element('form', {'string': tools.ustr(pag_rec.title or sur_rec.title)})
+                    note = False
+                    question_ids = []
+                    if pag_rec:
+                        title = pag_rec.title
+                        note = pag_rec.note
+                        question_ids=pag_rec.question_ids
+                    else:
+                        title=sur_rec.title
+                    xml_form = etree.Element('form', {'string': tools.ustr(title)})
                     if context.has_key('active') and context.get('active',False) and context.has_key('edit'):
                         context.update({'page_id' : tools.ustr(p_id),'page_number' : sur_name_rec.page_no , 'transfer' : sur_name_read.transfer})
                         xml_group3 = etree.SubElement(xml_form, 'group', {'col': '4', 'colspan': '4'})
@@ -174,10 +187,10 @@
                         fields["wizardid_" + str(wiz_id)] = {'type':'char', 'size' : 255, 'string':"", 'views':{}}
                         etree.SubElement(xml_form, 'field', {'invisible':'1','name': "wizardid_" + str(wiz_id),'default':str(lambda *a: 0),'modifiers':'{"invisible":true}'})
 
-                    if pag_rec.note:
-                        for que_test in pag_rec.note.split('\n'):
+                    if note:
+                        for que_test in note.split('\n'):
                             etree.SubElement(xml_form, 'label', {'string': to_xml(tools.ustr(que_test)), 'align':"0.0"})
-                    que_ids = pag_rec.question_ids
+                    que_ids = question_ids
                     qu_no = 0
 
                     for que in que_ids:
@@ -429,13 +442,13 @@
                                 vals['attachment_ids'] = [(0,0,{'name': a_name,
                                                                 'datas_fname': a_name,
                                                                 'datas': str(a_content).encode('base64')})
-                                                                for a_name, a_content in attachments]
+                                                                for a_name, a_content in attachments.items()]
                             self.pool.get('mail.mail').create(cr, uid, vals, context=context)
 
                     xml_form = etree.Element('form', {'string': _('Complete Survey Answer')})
                     xml_footer = etree.SubElement(xml_form, 'footer', {'col': '6', 'colspan': '4' ,'class': 'oe_survey_title_height'})
 
-                    etree.SubElement(xml_form, 'separator', {'string': 'Complete Survey', 'colspan': "4"})
+                    etree.SubElement(xml_form, 'separator', {'string': 'Survey Completed', 'colspan': "4"})
                     etree.SubElement(xml_form, 'label', {'string': 'Thanks for your Answer'})
                     etree.SubElement(xml_form, 'newline')
                     etree.SubElement(xml_footer, 'button', {'special':"cancel",'string':"OK",'colspan':"2",'class':'oe_highlight'})

=== modified file 'survey/wizard/survey_send_invitation.py'
--- survey/wizard/survey_send_invitation.py	2012-09-04 16:55:53 +0000
+++ survey/wizard/survey_send_invitation.py	2012-10-09 10:09:28 +0000
@@ -50,9 +50,6 @@
     _defaults = {
         'send_mail': lambda *a: 1,
         'send_mail_existing': lambda *a: 1,
-        'mail_subject': lambda *a: "Invitation",
-        'mail_subject_existing': lambda *a: "Invitation",
-        'mail_from': lambda *a: tools.config['email_from']
     }
 
     def genpasswd(self):
@@ -70,11 +67,14 @@
             name += "\t --> " + sur.title + "\n"
             if sur.state != 'open':
                 msg +=  sur.title + "\n"
+            data['mail_subject'] = "Invitation for " + sur.title
+            data['mail_subject_existing'] = "Invitation for " + sur.title
+            data['mail_from'] = sur.responsible_id.email
         if msg:
             raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
         data['mail'] = '''Hello %(name)s, \n\n We are inviting you for following survey. \
                     \n  ''' + name + '''\n Your login ID: %(login)s, Your password: %(passwd)s
-                    \n link :- http://'''+ str(socket.gethostname()) + ''':8080 \n\n Thanks,'''
+                    \n link :- http://'''+ str(socket.gethostname()) + ''':8069 \n\n Thanks,'''
         return data
 
     def create_report(self, cr, uid, res_ids, report_name=False, file_name=False):

=== modified file 'survey/wizard/survey_send_invitation.xml'
--- survey/wizard/survey_send_invitation.xml	2012-08-09 06:05:16 +0000
+++ survey/wizard/survey_send_invitation.xml	2012-10-09 10:09:28 +0000
@@ -16,7 +16,7 @@
                     </header>
                     <group col="4">
                         <separator string="Select Partner" colspan="4"/>
-                        <field name="partner_ids" nolabel="1"  colspan="4"/>
+                        <field name="partner_ids" nolabel="1" colspan="4" widget="many2many_tags"/>
                         <separator colspan="4" string="Send Mail for New User"/>
                         <field name="send_mail" nolabel="1"/>
                         <field name="mail_subject" colspan="3"/>

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to