Samstag, 26. Dezember 2015

CyanogenMod 12.1 auf Sony Xperia Z3 installieren

Aus Zeitmangel habe ich jetzt einige Monate nichts mehr gebloggt. Dank der Weihnachtszeit habe ich jetzt aber wieder etwas Zeit mich mit Themen zu beschäftigen die lange Zeit mir im Hinterkopf herum schwirrten.

Nach einem Jahr iPhone Abstinenz habe ich mir ein neues iPhone 6s zugelegt und konnte mit meinem Sony Z3 etwas experimentieren.

Aus Anwendersicht kann man wenig Unterschiede zwischen den Betriebssystemen feststellen.
Was mich bei Android aber sehr gestört hat, waren die vielen Zusatzapps, die von den verschiedenen Herstellern vorinstalliert werden, was den Grundspeicher stark reduziert. Erschwerend dazu kam die miserable Update-Politik insbesondere bei Sicherheitspatches und die schlechtere Einschränkungsmöglichkeit, welche App auf welche Daten zugreifen darf.


CyanogenMod

Der Name ist etwas sperrig. Dahinter steht eine Open Source Community, die das Android Betriebsystem vom unnötigen Ballast befreit und auch für ältere Geräte eine aktuelle Android Version zur Verfügung stellt.
http://www.cyanogenmod.org/


Rooten

Viele denken, dass man mit Android-Geräten alles machen kann und das "Jailbreaken" eine iPhone Thematik wäre. Dies ist aber nicht so. Zunächst muss man sein Gerät "rooten".
Dies geht bei Sony recht einfach.

Die Anleitung von CyanogenMod ist eigentlich recht gut gemacht.
https://wiki.cyanogenmod.org/w/Install_CM_for_z3

Deshalb will ich in diesem Blog nur auf meine Probleme eingehen.

Boot Image 

Wenn das Gerät "gerootet" wurde, muss das Boot-Image von CyanogenMod installiert werden.
Dazu habe ich mir das aktuelle Paket unter https://download.cyanogenmod.org/?device=z3 herunterladen.

In der Zip Datei findet man eine Datei namens boot.img. Dies muss man jetzt auf das Gerät kopieren.

Shortcuts zum Verzweifeln

Je nach Gerät gibt es bei Android verschiedene Tastenkombination um in den jeweiligen Modus zu gelangen. Beim Sony kommt man in den "fastboot mode" durch das Drücken des Einschalters und der Lauter-Taste in Verbindung mit eingestecktem USB-Kabel. Wichtig - was LED-Licht muss blau leuchten und das Display bleibt schwarz.

Hat man dies geschafft, dass muss man mit den Android-Plattform Werkzeugen das Image auf das System kopieren.

Dies geht nur, wenn man die Android SDK installiert hat. Ich habe dazu das Android Studio für Mac installiert. http://developer.android.com/sdk/index.html

Wenn das SDK installiert ist, kann man in den Einstellungen den Pfad erfragen:


Nun öffnet man ein Terminal und wechselt in den Root-Mode mittels "sudo su".

Wechselt man in den Ordner, in dem die Datei "boot.img" liegt. Dort führt man das Kommando aus:

sh-3.2# /Users/picard/Library/Android/sdk/platform-tools/fastboot flash boot boot.img

Ist die Datei kopiert, führt man nicht wie in der Anleitung beschrieben ein "fastboot reboot" aus, sondern ein

sh-3.2# /Users/picard/Library/Android/sdk/platform-tools/adb reboot recovery

Denn um in Recovery-Mode zu kommen, muss man beim Sony die Kombination von "Einschalter" + "Wechsel zwischen Lauter/Leiser" drücken, was mich zum Verzweifeln brachte.

Image Sideload

Wenn man im Recovery Mode ist, wechselt man auf



"Apply update"

Jetzt war ich ganz schlau und habe auf die SD-Karte die Zip-Datei aufgespielt.
Leider konnte der Bootloader aber auf die SD-Karte warum auch immer nicht zugreifen. Vielleicht, weil diese 64 GB groß war.

Also habe ich das Image mittels

sh-3.2# /Users/picard/Library/Android/sdk/platform-tools/adb sideload cm-12.1-20151224-NIGHTLY-z3.zip

auf das Gerät aufgespielt. Leider brach dieser Prozess trotz mehrmaliger Versuche immer wieder bei 47% ab.

Ich war schon drauf und dran, das Sony ROM herzustellen. Zuletzt habe ich einfach ein älteres Nightly Build getestet:

sh-3.2# /Users/picard/Library/Android/sdk/platform-tools/adb sideload cm-12.1-20151223-NIGHTLY-z3.zip

Damit klappte es und nach einem Reboot konnte ich mit meinem Handy wieder booten.



Google Apps

CyanogenMod kommt im Standard ohne die ganzen Google Apps. Um Apps auf dem PlayStore zu installieren, kann man sich ein passendes Images unter "The Open GApps Project" herunterladen:
http://opengapps.org/?api=5.1&variant=nano

Ich habe mich für die Nano Variante entschieden. Damit wird nur der PlayStore mit wenigen Basis-Apps installiert. Google Chrome und ChromeCast habe ich dann über den Google PlayStore installiert.

Ich habe das Images mittels USB auf das Gerät kopiert.

Zur Installation wechselt man wieder in den Recory Mode und installiert es.
Alternativ geht auch

sh-3.2# /Users/picard/Library/Android/sdk/platform-tools/adb sideload open_gapps-arm-5.1-nano-20151225.zip

Ergebnis




Jetzt habe ich Android 5.1.1 installiert und habe jede Menge Speicher frei. Außerdem hat sich das System auch gleich auf die neuste Version patchen lassen. Android 6 wird in Kürze auch mit CyanogenMod erscheinen. Ich werde dann berichten wie man updatet.

Ich werde jetzt meine anderen Android Geräte auch auf CyanogenMod umstellen ;)


Die ScreenShots habe ich übrigens mittels http://www.airsquirrels.com/reflector/ gemacht. Mittels ChromeCast kann ich sowohl meine iOS Geräte und meine Android Geräte auf meinen Mac spiegeln.






















Mittwoch, 12. August 2015

Push-Nachrichten von Odoo an App verschicken..

Odoo generiert seine Webseiten im Responsive Design, d.h. Sie laufen sowohl auf Desktop Computern und Laptops als auch auf mobilen Geräten, weil sich die Website auf den jeweiligen Browser automatisch einstellt.


Inzwischen achtet Google genau darauf, welche Inhalten dies erfüllen und bevorzugt derartige Angebote.

Push me Odoo

Wir haben jetzt eine App geschrieben, die Nachrichten aus Odoo an eine App schicken kann und zwar nicht als E-Mail oder SMS, sondern über eine Push-Nachricht.


Wie es auf dem Smartphone ankommt zeigt dieses kurze Video:

video

Auf meinen Sony Z3 mit Android 5.1.1 kommt die Nachricht an. Beim Aufruf der Nachricht wird die App geöffnet, die den Inhalt des Odoo Systems anzeigt.

Technik:

  • Odoo-Modul mit Anbindung an https://parse.com/ 
  • Kommunikation über REST-API
  • App wird in Delphi XE8 programmiert und wird nativ für Android und iOS erzeugt.
  • Die App selbst kapselt nur den Browser der Gerätes und zeigt die hinterlegt Website an.
  • Dadurch lässt sich die App einfach und kostengünstig für jedes Odoo System anpassen, da nur die die Splash-Screen und die Icons angepasst werden müssen.


Ausblick:

  • Derzeit sendet Odoo an die App nur einfache Textnachrichten.
  • Ziel ist es neben der Textnachricht auch URLs und GEO-Location Informationen zu senden.
  • Der App-Benutzer könnte dadurch nicht nur allgemeine Informationen vom Shop erhalten, sondern auch gezielt Nachrichten zu bestimmten Standorten oder Angeboten.
  • Angenommen der Odoo-Shop Betreiber hat verschiedene Läden und der App-Besitzer will nur Nachrichten im Umkreis von 20 km, dann geht das auch.

Es wird spannend ;)



Dienstag, 21. Juli 2015

Odoo Framework "Code Completion" unter Eclipse und PyDev

Als meine verwöhnten Visual Studio Programmierer Ihre ersten Python Projekte für Odoo programmieren sollten, haben Sie gleich "geweint", weil Sie mehr Code schreiben mussten.
Natürlich hat auch Eclipse mit PyDev eine "Code Completion" für den Python Code, aber nicht für Methoden, Klassen etc. auf dem Odoo Framework.

Wenn man allerdings in seinem Projekt Properties den Pfad zum Odoo Server angibt:























Dann kann Eclipse auch auf das Odoo Framework referenzieren.





Freitag, 17. Juli 2015

nbsp in der Templates in Odoo

By Default kann man in den XML Templates in Odoo das   nicht verwenden -  Odoo meldet immer einen Fehler zurück.

Das Problem ist aber,  dass man es manchmal braucht.

Hier ist die Lösung:
Zuerst definiert man in der XML Datei eigene Variante für nbsp

<!-- custom definition for nbsp; -->
<t t-set="nbsp" t-value=" '     '.replace('  ',u'\xa0').encode('utf-8') "/>

Und so kann man es verwenden
<t t-esc="nbsp"/><span><t t-esc="res_company.street2"></t></span><br/>

Montag, 15. Juni 2015

Odoo Datenbank Wiederherstellung inkl. Filestore

Odoo Backup über Webinterface


























Seit einiger Zeit hat Odoo ein weiteres Backup-Format eingeführt, da insbesondere bei installiertem CMS und eCommerce Bilder und Dateien direkt auf dem Server gespeichert werden. Gilt auch für das DMS.

Und zwar unter Server-Pfad/.local/share/Odoo/filestore/DB-Name

Man kann diese Backups zwar auch über die Weboberfläche wiederherstellen, allerdings kann dies bei größeren Backup Probleme bereiten und vor Allem sieht man keine Fehlermeldungen!

Deshalb habe ich ein neues Skript geschrieben:
https://github.com/equitania/odoo-addons/blob/master/scripts/restore-zip.sh

Dazu platziert man das Skript am Besten im Home von Odoo in der Regel "/opt/odoo" .
Hier sollte auch das Zip-File liegen.
Nach Eingabe des Datenbank-Namens wird optional die alte DB gelöscht. Danach wird der "Filestore" ggf. geleert und das Backup ausgepackt und die Datenbank wiederherstellt.

Falls man das Backup auf einer Testmaschine installiert, kann man die CRON-Jobs deaktivieren.

Wer im Skript die Variable "export PGPASSWORD=odoo2015" auf das PostgreSQL Passwort des Odoo Benutzers anpasst, musst dies nicht immer manuell eingeben.

Wenn das Skript fertig ist, sollte man vorsichtshalber in den Server-Ordner wechseln und einen Abgleich zwischen der Datenbank und den installierten Modulen machen.

cd /opt/odoo/odoo-server
./odoo.py -u all -d dbname --stop-after-init

TIPP

Wer das Backup automatisieren will, kann dies mit folgendem Modul machen:
https://github.com/equitania/auto_backup

Hier kann man seine  Datenbanken auch auf externen SFTP Servern sichern.


Montag, 11. Mai 2015

Debian teilweise zu konservativ was Python Bibliotheksversionen angeht

Wir programmieren gerade eine Anbindung an http://www.unternehmensverzeichnis.org/ für odoo.

In der Entwicklungsumgebung hat alles super funktioniert. Unter Ubuntu Servern auch nur unter Debian 7.x Servern wollte es partout nicht funktionieren :(

Bei der Anbindung an das Unternehmensverzeichnis verwenden wir die Python Bibliothek "requests". Diese wird mittels

pip install requests

installiert.

Beim genauer hinsehen bin ich darauf gestoßen, dass unter Debian eine uuuuuuuuralte Version verwendet wird.

Aktuelle Version feststellen:
root@vmd7211:/opt/odoo# python
Python 2.7.3 (default, Mar 13 2014, 11:03:55)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> requests.__version__
'0.12.1'
>>>exit()

Vergleich Ubuntu
odooadmin@odoo:/opt/odoo$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> requests.__version__
'2.2.1'
>>>exit()

Deinstallation und aktuelle Version holen:
root@vmd7211:/opt/odoo# pip uninstall requests
Uninstalling requests:
  /usr/share/pyshared/requests-0.12.1.egg-info
Proceed (y/n)? y
  Successfully uninstalled requests
root@vmd7211:/opt/odoo# cd /root
root@vmd7211:~# git clone git://github.com/kennethreitz/requests.git
Cloning into 'requests'...
remote: Counting objects: 15322, done.
remote: Total 15322 (delta 0), reused 0 (delta 0), pack-reused 15322
Receiving objects: 100% (15322/15322), 6.38 MiB | 6.10 MiB/s, done.
Resolving deltas: 100% (8619/8619), done.
root@vmd7211:~# cd requests/
root@vmd7211:~/requests# python setup.py install
..
Installed /usr/local/lib/python2.7/dist-packages/requests-2.7.0-py2.7.egg
Processing dependencies for requests==2.7.0
Finished processing dependencies for requests==2.7.0


Noch einfacher:

pip install requests==2.7.0

Mittwoch, 15. April 2015

*.pyc Bereinigung während der Odoo Entwicklung für verlässlichere Tests

Beim Start von Odoo wird aus den Dateien mit der Endung *.py Bytecode erzeugt und zusätzlich eine Datei mit der Endung *.pyc.
Da man nicht sicher sein kann, dass wirklich alle Dateien erneuert werden, ist es sinnvoll nach Änderungen diese Dateien zu entfernen.

Das geht ganz einfach:

  1. Terminal öffnen
  2. Basis Pfad angeben - in unserem Fall $ cd /home/odoo/git
  3. Danach $ find . -name "*.pyc" -type f -print0 | xargs -0 /bin/rm –f
Fertig.

Natürlich könnt ich Euch dazu eine kleine Skriptdatei auf den Desktop packen:
  • Terminal öffnen
  • $ cd /home/odoo/Desktop
  • $ nano remove-pyc.sh
  • Im Editor:
#!/bin/bash
# Mit diesem Skript werden alle pyc Dateien im ab /home/odoo/git.. gelöscht
echo "change path to /home/odoo/git"
cd /home/odoo/git
find . -name "*.pyc" -type f -print0 | xargs -0 /bin/rm -f
echo "all files with *.pyc removed"


  • Speichern mit CRTL+x danach Y
  • Zuletzt $ chmod +X remove-pyc.sh
  • Fertig.

Dienstag, 7. April 2015

Odoo OCA Module auf die man nicht verzichten sollte

Alle Odoo Module im ERP Bereich werden als "Web"-Module bezeichnet, wohin gehen die für CMS und eCommerce als "Website"-Module bezeichnet werden.

Um die Ersteren handelt der heutige Blog.

Folgende Module erleichtern die tägliche Arbeiten mit Odoo:

Alle Module sind unter https://github.com/OCA/web zu finden, wobei ich auf unseren Fork verweisen werde, da z.B. das erste Modul von uns stammt und der Pull Request noch nicht abgeschlossen ist. https://github.com/equitania/web

Clean Navbar

https://github.com/equitania/web/tree/8.0/web_clean_navbar
Verbessert die Farben und Hervorhebung in der oberen Menübar.

Formulare auf volle Browser-Breite anzeigen

https://github.com/equitania/web/tree/8.0/web_sheet_full_width



Verbreitert die Einzelansichten auf die volle Browserbreite.

Dialoge verbreitern





Ermöglicht das einfache Verbreitern der Dialoge.

Benutzungsverläufe anzeigen


Zeigt die Benutzung an und ermöglicht schnelles vor und zurückspringen.

Listen direkt in Excel exportieren


Ermöglicht alle Listen direkt in Excel zu exportieren.

Shortcuts von Ansichten




Festlegen von Shortcuts durch einfaches Anklicken des *.








Dienstag, 31. März 2015

FavIcon in Odoo Website anzeigen


Wenn man Odoo dazu bringen will das passende FavIcon anzuzeigen, muss man an 2 Stellen Änderungen vornehmen:

Website

In ein Modul muss man das Website Layout wie in dem Beispiel erweitern.

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="myodoo_layout" inherit_id="website.layout" name="MyOdoo layout" priority="17">
    <xpath expr="//head//link" position="after">
        <link rel="shortcut icon" href="/myodoo/static/src/img/favicon.ico" type="image/x-icon"/>
    </xpath>
</template>
</data>
</openerp>

Server


Auf dem Server muss man im Server Pfad

serverpfad/addons/web/static/src/img/favicon.ico

austauschen.

Montag, 30. März 2015

Odoo/OpenERP mittels PageSpeed für den nginx beschleunigen

Odoo/OpenERP benutzt für die Browser-Ausgabe im Standard den Port 8069. Sinnvollerweise ist eine Weiterleitung auf den Port 80 empfehlenswert, da sonst der Anwender neben der Serveradresse den Port angeben muss. Steht der Server im Internet ist eine Weiterleitung auf Port 443 für die SSL Verschlüsselung von Nöten.

Die Anleitungen für Odoo verwenden dazu den "nginx" als vorgeschalteten Proxy. Die einzige Aufgabe, die der nginx macht, ist den Port von 8069 auf 80/443 weiterzuleiten und ggf. ein SSL Zertifikat zu verwalten.

Die Einrichtung habe ich in einem früheren Blogeintrag erklärt:
http://www.software-insel.de/2014/12/openerpodoo-auf-dem-standardport-80.html

Aber der nginx kann noch viel mehr. Insbesondere das Modul PageSpeed von Google ist für den Betrieb der Website und des Shop sehr wichtig.

PageSpeed

Das Modul PageSpeed optimiert den Zugriff auf die Website. Es wurde von Google entwickelt und steht im Quellcode zur Verfügung.

https://developers.google.com/speed/pagespeed/module/download

Leider gibt es für den nginx keine fertiges Installationspaket. Da ich Debian 7 auf meinen Servern einsetzt, kommt noch erschwerend dazu, dass Debian eine veraltete Version von nginx über apt-get bereitstellt.

Also ein eigenes Paket bauen! 

Dazu habe ich im Netz eine sehr gute Anleitung gefunden:

http://www.debiantutorials.com/compile-install-latest-version-nginx-1-6-source-pagespeed-module-ngx_pagespeed/

Für alle, die es nicht selbst bauen können oder wollen, habe ich das Debian Paket hier zum Download bereitgestellt:

wget http://www.openerp24.de/fileadmin/content/dateien/nginx_1.6.2-1~wheezy_amd64_pagespeed.deb 

dpkg -i nginx_1.6.2-1~wheezy_amd64_pagespeed.deb

ggf. den alten nginx deinstallieren. 

apt-get remove nginx nginx-common

Vorher die Konfigurationen wegsichern!

In der nginx.conf muss noch folgender Eintrag ergänzt werden:

##
# PageSpeed
##
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

Danach nginx neu starten.

Deutliche Steigerung

Auf meinen Server konnte ich eine deutliche Steigerung feststellen. Ausführliche Messwerte gibt es zu einem späteren Zeitpunkt.

Weitere Informationen zur Optimierung hier.


https://www.maxcdn.com/blog/nginx-performance-tips-with-the-google-pagespeed-team/


Dienstag, 24. März 2015

Neuer Ansatz zur Datenmigration zwischen OpenERP 7 oder Fremdsystemen auf Odoo 8

Viele setzen erfolgreich OpenERP 7 ein und spielen mit dem Gedanken auf Odoo 8 zu migrieren.

Dazu gibt es verschiedene Ansätze.

1. Enterprise Service von Odoo SA

Wenn man einen Vertrag bei Odoo SA hat, gibt es die Möglichkeit seine Datenbank dort migrieren zu lassen.
Dazu lädt man eine komplette Datenbank auf den Server von Odoo. Die Daten kann man vorher anonymisieren lassen. Danach werden von Odoo Skripte erstellt, die die Konvertierung durchführen. Als Resultat bekommt man SQL Skripte, mit denen man eine Odoo 8 Datenbank erstellt.

Dies kann in der Realität aber schon mal einige Wochen bzw. Monate dauern. :(

Wenn das Transformationsskript von Odoo erstellt wurde,  testet man das Resultat und spielt dann die Datenbank nochmals ein und stellt danach um.

Leider muss man bei diesem Verfahren Offline-Zeit von einigen Tagen einplanen, resultierend auf der Datenbankgrösse.

2. DoItYourSelf mit ETL Tools

Mittels ETL Tools wie z.B. https://github.com/ingadhoc/odoo-etl kann man selbst die Daten migrieren. Dazu ist natürlich hohes technisches Verständnis nötig, insbesondere muss man die Modul- und Tabellenstruktur kennen.

Das o.g. Tool wird in einem Odoo Server installiert. Es vergleicht dann die v7 Datenbank mit der v8 Datenbank und meldet welche Module ggf. fehlen.

Danach kann man die Daten umkopieren.

3. Permanent Transfer und Parallelbetrieb

Wir haben jetzt ein Tool in c# programmiert. Es ist eine Konsolenanwendung unter Windows. Man richtet sich einen Odoo 8 Server ein und trägt natürlich Sorge, dass alle Module von v7 auch dort vorhanden sind.

Mittels XML-RPC werden von der Anwendung alle Stammdaten (Kunden, Lieferanten, Produkte, Benutzer) sowie die Aufträge aus der v7 in die v8 übertragen.
Da man aber keinen Einfluss auf das Erstellungs- und Änderungsdatum sowie den Benutzer hat, weil dies vom Framework gesetzt wird, haben wir eine kleines Modul geschrieben, das auch INSERT und UPDATE Befehle auf Basis von XML-RPC erlaubt. Danach dem Einfügen ändern wir den Datensatz noch auf das ursprüngliche Datum und Benutzer der v7 Datenbank. So bleibt der historische Zustand erhalten.

Parallelbetrieb

Da die Konsolenanwendung über einen Task täglich oder auch stündlich die Veränderungen überträgt, kann man sich solange Zeit lassen, bis man sich sicher ist, das alles in Odoo 8 läuft.

Ob man auch die Lagerbewegungen oder die Nachrichten übertragt, darüber läßt sich streiten. Manchmal ist es besser nicht alle Altlasten zu übertragen. Aber möglich.

Auch bei Fremdsystemen

Ein ähnliches Verfahren setzen wir übrigens auch bei der Umstellung von Fremdsystemen ein. Konkret haben wir so einen Kunden von BEOSYS auf Odoo umgestellt. Dabei haben wir alle Kunden, Lieferanten, Artikel, Stücklisten, Arbeitspläne und Detailtabellen auf Odoo übertragen. Der Kunde konnte mehrere Wochen parallel testen und ist dann umgestiegen. Dies funktioniert mit jedem System, dass einen Zugriff auf seine Datenbank zulässt, Webservices hat oder permanente Exporte unterstützt.
  

Sonntag, 22. März 2015

Odoo - Parlez-vous allemand - Do you speak German - ¿Hablas alemán >>> Odoo Inhalte auf deutsch

Odoo benutzt wie viele Open Source Programme GetText, um die Oberflächen und Texte in verschiedenen Sprachen darzustellen.

Wenn der Programmierer sich an die Richtlinien gehalten hat, ist das jeweilige Modul in der englischen Sprache für alle Texte und Oberfläche programmiert. Im Ordner "i18n" liegt dann die Übersetzungsdatei.

Damit die Sprache anzeigt wird, muss diese in die Tabelle "ir_translation" geladen werden.
Dies macht man über folgende Maske unter den Einstellungen:

Wichtig:
Danach den Server kurz stoppen und starten, sowie den Browser Cache leeren.

Soweit die Theorie:)

Leider funktioniert dies in der Praxis nicht immer korrekt, vor allem wenn der Objektname, der übersetzt werden soll, nicht eindeutig ist.

Deshalb haben wir jetzt in das Equitania-Paket eine Funktion integriert, die die Objekt beim Installieren bzw. Updaten aus der de.po Datei des Paketes lädt und die Tabelle korrekt füllt.

https://github.com/equitania/odoo-addons/blob/master/equitania/eq_install_func.py

Leitet man sein eigenes Modul von Equitania Modul ab, kann die Funktion auch in eigenen Modulen nutzen.

Donnerstag, 19. März 2015

Odoo Menüleiste lesbarer machen

In meinen Projekten habe ich öfters gehört, dass die Menüleiste von Odoo schwer lesbar wäre.
Gerade auf Beamern kam dies öfters vor.


Das liegt daran, dass im Standard mit Grauwerten arbeitet.


Wir haben dies in unserem Fork abgeändert.Die Menü-Leiste ist generell schwarz mit weisser Schrift. Das selektierte Menü wird hervorgehoben.

Wer also unseren Fork benutzt, bekommt automatisch dieses Look&Feel.
Wer wissen will wo und wie man es anpasst, kann dies in diesem Commit nachvollziehen. 

Samstag, 21. Februar 2015

Erste Schritte zur Installation von Odoo auf dem Raspberry Pi 2 B - I/O Tests

Die POSBOX von Odoo basiert auf einem Raspberry Pi.

Derzeit bin ich dabei die Installation hierzu zu dokumentieren und auch Skripte zu erstellen.

Heute habe ich begonnen das Grundsystem zu analysieren und die neue Hardware des Raspberry Pi 2 B zu testen. Dieser hat bekanntermaßen 4 statt 1 Kern und mehr Speicher.

Aber auch im I/O liegen Welten zwischen den Geräten wie mein Test mit dbench zeigt.


dbench -D /root -t 60 2


dbench Ergebnis Raspberry Pi

 Operation      Count    AvgLat    MaxLat
 ----------------------------------------
 NTCreateX       1270     0.287    13.711
 Close            940     0.042    10.443
 Rename            56     0.959    10.695
 Unlink           254     0.522    10.611
 Qpathinfo       1180     0.147    10.576
 Qfileinfo        202     0.014     0.075
 Qfsinfo          218     0.134    10.621
 Sfileinfo        110     0.110     0.916
 Find             438     0.406    10.684
 WriteX           646    14.470  4428.409
 ReadX           1960     0.132    13.380
 LockX              4     2.592    10.231
 UnlockX            4     0.025     0.043
 Flush            112  1219.548 32270.689


Throughput 0.657911 MB/sec  2 clients  2 procs  max_latency=32270.730 ms

dbench Ergebnis Raspberry Pi 2 B

 Operation      Count    AvgLat    MaxLat
 ----------------------------------------
 NTCreateX      29496     0.070    10.231
 Close          21668     0.009     0.152
 Rename          1250     0.172     0.419
 Unlink          5956     0.177     1.878
 Qpathinfo      26714     0.035     0.557
 Qfileinfo       4658     0.006     0.219
 Qfsinfo         4904     0.020     0.290
 Sfileinfo       2406     0.043     0.378
 Find           10324     0.123     0.562
 WriteX         14566     0.205     1.047
 ReadX          46250     0.040     0.961
 LockX             96     0.016     0.027
 UnlockX           96     0.010     0.016
 Flush           2072    51.194  9219.874

Throughput 15.5501 MB/sec  2 clients  2 procs  max_latency=9219.939 ms


Freitag, 6. Februar 2015

Odoo/OpenERP ändert Open Source Lizenz

Nun ist es offiziell.

Die Odoo SA ändert mit der nächste Version von Odoo die Lizenz von AGPL v3 zu LGPLv3 wie im Blogeintrag vom 5. Februar 2015 bekannt gegeben wurde.

Was ist der Unterschied?

Odoo SA und Entwickler von Zusatzmodulen können jetzt auch proprietäre Elemente in Odoo einbinden und müssen deren Code nicht offen legen. Damit verabschiedet sich Odoo vom puristischen Open Source Gedanken.

Ob das für Odoo schlecht ist, wird die Zeit zeigen. Entwickler müssen auch von was leben!
Vielleicht wird Odoo damit noch professioneller.

Die OCA hat dazu auch Stellung bezogen. Sie stellt es jedem Entwickler frei unter welcher Lizenz er seinen Code veröffentlicht.

Es wird auf jeden Fall zu spannenden Diskussionen auf den diesjährigen Open Days in Belgien führen.


Sonntag, 25. Januar 2015

OpenERP/Odoo im Notfall neu aufsetzen!

Am vergangenen Freitag kam es bei einem Kunden zu einem Hardware-Defekt.
Da die Hardware von einem Dienstleister betreut wird, wurde nach einer Lösung gesucht, wie das Unternehmen Montags darauf wieder einsatzfähig ist.

Hardware und Betriebssystem

Der Dienstleister setze darauf einen neuen Server mit Ubuntu 14.04.01 LTS auf. Was bei einer entsprechenden Internetverbindung inkl. aller Patches innerhalb von 30 Minuten erledigt ist.
Es wurde das Basissystem mit installiertem OpenSSH Server aufgesetzt.

Odoo installieren

Daraufhin wurde mir das System per SSH bereitgestellt.
Zunächst wurde mein Prepare Skript durchgeführt:
https://github.com/equitania/odoo-addons/blob/master/scripts/prepare-odoo-server-ubuntu.sh
Danach das Installation Skript:
https://github.com/equitania/odoo-addons/blob/master/scripts/install-odoo-server-ubuntu.sh

Bingo!

Jetzt noch das letzte Backup eingespielt:
https://github.com/equitania/odoo-addons/blob/master/scripts/restore-db-odoo-server.sh

Nach nicht mal 60 Minuten lief das System wieder!

Das geht mit ERP Systemen eines ähnlichen Leistungsumfang sicher nicht!

Wichtig ist natürlich das Backup-Konzept!