diff --git a/mugshot/MugshotWindow.py b/mugshot/MugshotWindow.py index be794d5..284ec4c 100644 --- a/mugshot/MugshotWindow.py +++ b/mugshot/MugshotWindow.py @@ -380,7 +380,7 @@ class MugshotWindow(Window): try: child.expect([".*ssword.*", pexpect.EOF]) child.sendline(password) - child.expect("Full Name.*:") + child.expect(".*ame.*:") child.sendline(full_name) for i in range(5): child.sendline('') @@ -399,11 +399,11 @@ class MugshotWindow(Window): child = pexpect.spawn('chfn') child.timeout = 5 try: - child.expect(['Password: ', pexpect.EOF]) + child.expect([".*ssword.*", pexpect.EOF]) child.sendline(password) - child.expect('Room Number.*:') + child.expect(['Room Number.*:', 'Office.*:']) child.sendline('') - child.expect('Work Phone.*:') + child.expect(['Work Phone.*:', 'Office Phone.*:']) child.sendline(office_phone) child.expect('Home Phone.*:') child.sendline(home_phone) @@ -495,6 +495,20 @@ class MugshotWindow(Window): 'libreoffice-startcenter') if update_libreoffice: logger.debug('Confirm: Updating details.') + first_name = get_entry_value(self.first_name_entry) + first_name_updated = False + last_name = get_entry_value(self.last_name_entry) + last_name_updated = False + initials = get_entry_value(self.initials_entry) + initials_updated = False + email = get_entry_value(self.email_entry) + email_updated = False + home_phone = get_entry_value(self.home_phone_entry) + home_phone_updated = False + office_phone = get_entry_value(self.office_phone_entry) + office_phone_updated = False + fax = get_entry_value(self.fax_entry) + fax_updated = False tmp_buffer = [] for line in open(prefs_file): new = None @@ -503,39 +517,71 @@ class MugshotWindow(Window): # First Name if 'name="givenname"' in line: new = new + '%s\n' % \ - get_entry_value(self.first_name_entry) + first_name + first_name_updated = True # Last Name elif 'name="sn"' in line: new = new + '%s\n' % \ - get_entry_value(self.last_name_entry) + last_name + last_name_updated = True # Initials elif 'name="initials"' in line: new = new + '%s\n' % \ - get_entry_value(self.initials_entry) + initials + initials_updated = True # Email elif 'name="mail"' in line: new = new + '%s\n' % \ - get_entry_value(self.email_entry) + email + email_updated = True # Home Phone elif 'name="homephone"' in line: new = new + '%s\n' % \ - get_entry_value(self.home_phone_entry) + home_phone + home_phone_updated = True # Office Phone elif 'name="telephonenumber"' in line: new = new + '%s\n' % \ - get_entry_value(self.office_phone_entry) + office_phone + office_phone_updated = True # Fax Number elif 'name="facsimiletelephonenumber"' in line: new = new + '%s\n' % \ - get_entry_value(self.fax_entry) + fax + fax_updated = True else: new = line tmp_buffer.append(new) + elif '' in line: + pass else: tmp_buffer.append(line) open_prefs = open(prefs_file, 'w') for line in tmp_buffer: open_prefs.write(line) + + if not first_name_updated: + string = '%s\n' % first_name + open_prefs.write(string) + if not last_name_updated: + string = '%s\n' % last_name + open_prefs.write(string) + if not initials_updated: + string = '%s\n' % initials + open_prefs.write(string) + if not email_updated: + string = '%s\n' % email + open_prefs.write(string) + if not home_phone_updated: + string = '%s\n' % home_phone + open_prefs.write(string) + if not office_phone_updated: + string = '%s\n' % office_phone + open_prefs.write(string) + if not fax_updated: + string = '%s\n' % fax + open_prefs.write(string) + open_prefs.write('') open_prefs.close() else: logger.debug('Reject: Not updating.')