Merge lp:~julie-w/unifield-server/US-4759 into lp:unifield-server

Proposed by jftempo
Status: Merged
Merged at revision: 5044
Proposed branch: lp:~julie-w/unifield-server/US-4759
Merge into: lp:unifield-server
Diff against target: 111 lines (+40/-5) (has conflicts)
2 files modified
bin/addons/msf_homere_interface/wizard/hr_payroll_employee_import.py (+31/-5)
bin/addons/msf_profile/i18n/fr_MF.po (+9/-0)
Text conflict in bin/addons/msf_profile/i18n/fr_MF.po
To merge this branch: bzr merge lp:~julie-w/unifield-server/US-4759
Reviewer Review Type Date Requested Status
UniField Reviewer Team Pending
Review via email: mp+352739@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bin/addons/msf_homere_interface/wizard/hr_payroll_employee_import.py'
--- bin/addons/msf_homere_interface/wizard/hr_payroll_employee_import.py 2018-07-19 13:11:25 +0000
+++ bin/addons/msf_homere_interface/wizard/hr_payroll_employee_import.py 2018-08-14 13:29:44 +0000
@@ -37,6 +37,8 @@
37import subprocess37import subprocess
38import os38import os
39import shutil39import shutil
40import ConfigParser
41
4042
41def get_7z():43def get_7z():
42 if os.name == 'nt':44 if os.name == 'nt':
@@ -534,23 +536,31 @@
534 staff_file = 'staff.csv'536 staff_file = 'staff.csv'
535 contract_file = 'contrat.csv'537 contract_file = 'contrat.csv'
536 job_file = 'fonction.csv'538 job_file = 'fonction.csv'
539 ini_file = 'envoi.ini'
537 job_reader =False540 job_reader =False
538 contract_reader = False541 contract_reader = False
539 staff_reader = False542 staff_reader = False
543 config_parser = False
540 desc_to_close = []544 desc_to_close = []
541 tmpdir = False545 tmpdir = False
542 if is_zipfile(filename):546 if is_zipfile(filename):
543 zipobj = zf(filename)547 zipobj = zf(filename)
548 if zipobj:
549 desc_to_close.append(zipobj)
544 if zipobj.namelist() and job_file in zipobj.namelist():550 if zipobj.namelist() and job_file in zipobj.namelist():
545 job_reader = csv.DictReader(zipobj.open(job_file), quotechar='"', delimiter=',', doublequote=False, escapechar='\\')551 job_reader = csv.DictReader(zipobj.open(job_file), quotechar='"', delimiter=',', doublequote=False, escapechar='\\')
546 # Do not raise error for job file because it's just a useful piece of data, but not more.552 # Do not raise error for job file because it's just a useful piece of data, but not more.
547 # read the contract file553 # read the contract file
548 if zipobj.namelist() and contract_file in zipobj.namelist():554 if zipobj.namelist() and contract_file in zipobj.namelist():
549 contract_reader = csv.DictReader(zipobj.open(contract_file), quotechar='"', delimiter=',', doublequote=False, escapechar='\\')555 contract_reader = csv.DictReader(zipobj.open(contract_file), quotechar='"', delimiter=',', doublequote=False, escapechar='\\')
550 # read the staff file556 # read the staff file
551 if zipobj.namelist() and staff_file in zipobj.namelist():557 if zipobj.namelist() and staff_file in zipobj.namelist():
552 # Doublequote and escapechar avoid some problems558 # Doublequote and escapechar avoid some problems
553 staff_reader = csv.DictReader(zipobj.open(staff_file), quotechar='"', delimiter=',', doublequote=False, escapechar='\\')559 staff_reader = csv.DictReader(zipobj.open(staff_file), quotechar='"', delimiter=',', doublequote=False, escapechar='\\')
560 # read the ini file
561 if zipobj.namelist() and ini_file in zipobj.namelist():
562 config_parser = ConfigParser.SafeConfigParser()
563 config_parser.readfp(zipobj.open(ini_file))
554 else:564 else:
555 tmpdir = self._extract_7z(cr, uid, filename)565 tmpdir = self._extract_7z(cr, uid, filename)
556 job_file_name = os.path.join(tmpdir, job_file)566 job_file_name = os.path.join(tmpdir, job_file)
@@ -571,11 +581,20 @@
571 desc_to_close.append(staff_file_desc)581 desc_to_close.append(staff_file_desc)
572 staff_reader = csv.DictReader(staff_file_desc, quotechar='"', delimiter=',', doublequote=False, escapechar='\\')582 staff_reader = csv.DictReader(staff_file_desc, quotechar='"', delimiter=',', doublequote=False, escapechar='\\')
573583
584 ini_file_name = os.path.join(tmpdir, ini_file)
585 if os.path.isfile(ini_file_name):
586 ini_file_desc = open(ini_file_name, 'rb')
587 desc_to_close.append(ini_file_desc)
588 config_parser = ConfigParser.SafeConfigParser()
589 config_parser.readfp(ini_file_desc)
590
574 if not contract_reader:591 if not contract_reader:
575 raise osv.except_osv(_('Error'), _('%s not found in given zip file!') % (contract_file,))592 raise osv.except_osv(_('Error'), _('%s not found in given zip file!') % (contract_file,))
576 if not staff_reader:593 if not staff_reader:
577 raise osv.except_osv(_('Error'), _('%s not found in given zip file!') % (staff_file,))594 raise osv.except_osv(_('Error'), _('%s not found in given zip file!') % (staff_file,))
578 return (job_reader, contract_reader, staff_reader, desc_to_close, tmpdir)595 if not config_parser:
596 raise osv.except_osv(_('Error'), _('%s not found in given zip file!') % (ini_file,))
597 return job_reader, contract_reader, staff_reader, config_parser, desc_to_close, tmpdir
579598
580 def button_validate(self, cr, uid, ids, context=None):599 def button_validate(self, cr, uid, ids, context=None):
581 """600 """
@@ -603,9 +622,16 @@
603 # now we determine the file format622 # now we determine the file format
604 filename = fileobj.name623 filename = fileobj.name
605 fileobj.close()624 fileobj.close()
606 job_reader, contract_reader, staff_reader, desc_to_close, tmpdir = self.read_files(cr, uid, filename)625 job_reader, contract_reader, staff_reader, config_parser, desc_to_close, tmpdir = self.read_files(cr, uid, filename)
607 filename = wiz.filename or ""626 filename = wiz.filename or ""
608627 # Check data from the ini file
628 mois_ko = not config_parser.has_option('DEFAUT', 'MOIS')
629 liste_terr_ko = not config_parser.has_option('DEFAUT', 'LISTETERRAIN') or \
630 config_parser.get('DEFAUT', 'LISTETERRAIN').count(';') > 1 # it should contain only 1 project code
631 if mois_ko or liste_terr_ko:
632 # block all the import if the file imported is not a valid PER_MOIS file
633 raise osv.except_osv(_('Error'), _("You can't import this file. Please check that it contains data "
634 "for only one month and one field."))
609 if job_reader:635 if job_reader:
610 self.update_job(cr, uid, ids, job_reader, context=context)636 self.update_job(cr, uid, ids, job_reader, context=context)
611 # Do not raise error for job file because it's just a useful piece of data, but not more.637 # Do not raise error for job file because it's just a useful piece of data, but not more.
612638
=== modified file 'bin/addons/msf_profile/i18n/fr_MF.po'
--- bin/addons/msf_profile/i18n/fr_MF.po 2018-08-13 16:12:01 +0000
+++ bin/addons/msf_profile/i18n/fr_MF.po 2018-08-14 13:29:44 +0000
@@ -101396,6 +101396,7 @@
101396#, python-format101396#, python-format
101397msgid "The Location \"%s\" on line level is not the same as the Location \"%s\" on header level."101397msgid "The Location \"%s\" on line level is not the same as the Location \"%s\" on header level."
101398msgstr "La Zone \"%s\" au niveau de la ligne n'est pas la même que la Zone \"%s\" au niveau de l'entête."101398msgstr "La Zone \"%s\" au niveau de la ligne n'est pas la même que la Zone \"%s\" au niveau de l'entête."
101399<<<<<<< TREE
101399101400
101400#. module: account_override101401#. module: account_override
101401#: code:addons/account_override/account.py:1138101402#: code:addons/account_override/account.py:1138
@@ -101530,3 +101531,11 @@
101530#: selection:return.ppl.move.processor,integrity_status:0101531#: selection:return.ppl.move.processor,integrity_status:0
101531msgid "The quantity per pack must be a multiple of UoM's rounding"101532msgid "The quantity per pack must be a multiple of UoM's rounding"
101532msgstr "La quantité par paquet doit être un multiple de l'arrondi de l'UdM"101533msgstr "La quantité par paquet doit être un multiple de l'arrondi de l'UdM"
101534=======
101535
101536#. module: msf_homere_interface
101537#: code:addons/msf_homere_interface/wizard/hr_payroll_employee_import.py:635
101538#, python-format
101539msgid "You can't import this file. Please check that it contains data for only one month and one field."
101540msgstr "Vous ne pouvez pas importer ce fichier. Veuillez vérifier qu'il contient des données pour seulement un mois et un terrain."
101541>>>>>>> MERGE-SOURCE

Subscribers

People subscribed via source and target branches