dp_changelogs wuth reboot
							parent
							
								
									1752eebd03
								
							
						
					
					
						commit
						682ae668bd
					
				|  | @ -12,5 +12,4 @@ | |||
|         <field name="code">model.cron_get_changelog() | ||||
|         </field> | ||||
|     </record> | ||||
| 
 | ||||
| </odoo> | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| 
 | ||||
| from subprocess import check_output | ||||
| import pytz | ||||
| import os | ||||
| 
 | ||||
| from odoo import models, fields, api, tools | ||||
| 
 | ||||
|  | @ -20,35 +21,65 @@ class ChangeLog(models.Model): | |||
|         tz_name = self.env.context.get('tz') or tools.config.get('timezone') | ||||
|         date_string = fields.datetime.now().strftime("%Y-%m-%d %H:%M:%S") | ||||
|         date_string = fields.Datetime.to_string( | ||||
|             pytz.timezone('UTC').localize(fields.Datetime.from_string(date_string), is_dst=None).astimezone( | ||||
|             pytz.timezone('UTC').localize(fields.Datetime.from_string(date_string), | ||||
|                                           is_dst=None).astimezone( | ||||
|                 pytz.timezone(tz_name))) | ||||
|         return 'Changelog ' + date_string[:-3] | ||||
| 
 | ||||
|     name = fields.Char('Name', required=True, default=_get_changelog_name) | ||||
|     date = fields.Date('Datum', required=True, default=lambda *a: fields.datetime.now()) | ||||
|     date = fields.Datetime('Timestamp', required=True, default=lambda *a: fields.datetime.now()) | ||||
|     commit = fields.Char('Commit') | ||||
|     changelogs = fields.Text('Changelogs') | ||||
|     ppid = fields.Char('letzte ppid') | ||||
| 
 | ||||
|     @api.model | ||||
|     def cron_get_changelog(self): | ||||
|         vals = self._get_changelogs_vals() | ||||
|         changelog = self.create(vals) | ||||
|         changelog = False | ||||
|         if vals: | ||||
|             changelog = self.create(vals) | ||||
|         return changelog | ||||
| 
 | ||||
|     @api.model | ||||
|     def _get_changelogs_vals(self): | ||||
|         commit = check_output(["git", "log", "--pretty=oneline", "-1"]) | ||||
|         commit1 = self.search([], limit=1) | ||||
|         last_commit = self.search([], limit=1) | ||||
|         com2 = commit.decode("utf-8") | ||||
|         com2 = com2.split(' ')[0] | ||||
|         new_logs = b'' | ||||
|         if commit1: | ||||
|             com1 = commit1.commit | ||||
|         if last_commit: | ||||
|             com1 = last_commit.commit | ||||
|             changelogs = check_output(["git", "log", "--pretty=oneline", com1 + "..." + com2]) | ||||
|             new_logs = b'' | ||||
|             for changelog in changelogs.splitlines(): | ||||
|                 new_logs += b' '.join(changelog.split(b' ')[1:]) + b'\n' | ||||
|         return { | ||||
|             'commit': com2, | ||||
|             'changelogs': new_logs | ||||
|         } | ||||
|         if new_logs == b'': | ||||
|             vals = {} | ||||
|         else: | ||||
|             vals = { | ||||
|                 'commit': com2, | ||||
|                 'changelogs': new_logs, | ||||
|                 'ppid': last_commit.ppid | ||||
|             } | ||||
|         return vals | ||||
| 
 | ||||
|     @api.model | ||||
|     def _get_reboot_vals(self): | ||||
|         last_commit = self.search([], limit=1) | ||||
|         if last_commit and last_commit.ppid != str(os.getppid()): | ||||
|             vals = { | ||||
|                 'commit': last_commit.commit, | ||||
|                 'changelogs': 'Reboot', | ||||
|                 'ppid': str(os.getppid()) | ||||
|             } | ||||
|             return vals | ||||
| 
 | ||||
|     @api.model_cr | ||||
|     def _register_hook(self): | ||||
|         try: | ||||
|             self.cron_get_changelog() | ||||
|             vals = self._get_reboot_vals() | ||||
|             if vals: | ||||
|                 self.create(vals) | ||||
|         except: | ||||
|             # falls git nicht vorhanden ist wird sicher eine Fehler ausgegeben. | ||||
|             pass | ||||
|  |  | |||
|  | @ -10,6 +10,7 @@ | |||
|                     <field name="name"/> | ||||
|                     <field name="date"/> | ||||
|                     <field name="commit"/> | ||||
|                     <field name="ppid"/> | ||||
|                 </group> | ||||
|                 <group name="changelogs"> | ||||
|                     <field name="changelogs"/> | ||||
|  | @ -27,6 +28,7 @@ | |||
|                 <field name="name"/> | ||||
|                 <field name="date"/> | ||||
|                 <field name="commit"/> | ||||
|                 <field name="ppid"/> | ||||
|                 <field name="changelogs"/> | ||||
|             </tree> | ||||
|         </field> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue