Merge branch 'develop' of ssh://gitlab.datenpol.at:122/odoo/tz-austria into develop
						commit
						ad0b16dfc6
					
				|  | @ -4,3 +4,4 @@ | |||
| .settings | ||||
| .idea | ||||
| *.swp | ||||
| tza36 | ||||
|  | @ -0,0 +1,17 @@ | |||
| [options] | ||||
| 
 | ||||
| xmlrpc_port = 8080 | ||||
| ; This is the password that allows database operations: | ||||
| ; admin_passwd = admin | ||||
| db_host = localhost | ||||
| db_port = 5432 | ||||
| db_user = tzaustria | ||||
| db_password = x | ||||
| 
 | ||||
| addons_path = ext/odoo/addons,ext/custom-addons,ext/3rd-party-addons | ||||
| ; For enterprise use the addons path bellow | ||||
| ; addons_path = ext/enterprise-addons,ext/odoo/addons,ext/3rd-party-addons,ext/custom-addons,dmi/run1 | ||||
| timezone = Europe/Vienna | ||||
| 
 | ||||
| #dbfilter_test = ['.*',] | ||||
| show_debug = 1 | ||||
|  | @ -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> | ||||
|  |  | |||
|  | @ -0,0 +1,40 @@ | |||
| Babel==2.3.4 | ||||
| decorator==4.0.10 | ||||
| docutils==0.12 | ||||
| ebaysdk==2.1.5 | ||||
| feedparser==5.2.1 | ||||
| gevent>=1.1.2 | ||||
| greenlet>=0.4.10 | ||||
| html2text==2016.9.19 | ||||
| Jinja2==2.8 | ||||
| lxml>=3.5.0 | ||||
| Mako==1.0.4 | ||||
| MarkupSafe==0.23 | ||||
| mock==2.0.0 | ||||
| num2words==0.5.4 | ||||
| ofxparse==0.16 | ||||
| passlib==1.6.5 | ||||
| Pillow>=3.4.1 | ||||
| psutil>=4.3.1 | ||||
| psycopg2==2.7.1 | ||||
| pydot==1.2.3 | ||||
| #pyldap==2.4.28 | ||||
| pyparsing==2.1.10 | ||||
| PyPDF2==1.26.0 | ||||
| pyserial==3.1.1 | ||||
| python-dateutil==2.5.3 | ||||
| pytz==2016.7 | ||||
| pyusb==1.0.0 | ||||
| PyYAML==3.12 | ||||
| qrcode==5.3 | ||||
| reportlab>=3.3.0 | ||||
| requests==2.11.1 | ||||
| six==1.10.0 | ||||
| suds-jurko==0.6 | ||||
| vatnumber==1.2 | ||||
| vobject==0.9.3 | ||||
| Werkzeug==0.11.11 | ||||
| XlsxWriter==0.9.3 | ||||
| xlwt==1.3.* | ||||
| xlrd==1.0.0 | ||||
| odoorpc==0.6.0 | ||||
|  | @ -26,6 +26,7 @@ ENVIRONMENTS = { | |||
|     # Local environments are listed with passwords | ||||
|     'br': Environment('http://localhost', '8080', 'tz-austria_1', 'admin', 'x', 'admin'), | ||||
|     'aa': Environment('http://localhost', '8080', 'tz-austria_1', 'admin', 'x', 'admin'), | ||||
|     'oa': Environment('http://localhost', '8080', 'tz-austria_1', 'admin', 'x', 'admin'), | ||||
| 
 | ||||
|     # Remote environments are always listed without passwords! | ||||
|     # Do not store them here, you have to type them anyway! | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue