[MERGE] trunk

bzr revid: sle@openerp.com-20140219092216-39qp9v5uixh6jmju
This commit is contained in:
Simon Lejeune 2014-02-19 10:22:16 +01:00
commit e671171ed8
8 changed files with 1364 additions and 20 deletions

View File

@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2010-09-29 11:28+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2014-02-18 16:35+0000\n"
"Last-Translator: Boško Stojaković <bluesoft83@gmail.com>\n"
"Language-Team: Bosnian <bs@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-01-28 06:28+0000\n"
"X-Generator: Launchpad (build 16914)\n"
"X-Launchpad-Export-Date: 2014-02-19 05:23+0000\n"
"X-Generator: Launchpad (build 16916)\n"
#. module: account_cancel
#: view:account.invoice:0
msgid "Cancel"
msgstr ""
msgstr "Otkaži"
#~ msgid "Account Cancel"
#~ msgstr "Računovodstvo - povrat"

View File

@ -0,0 +1,94 @@
# Finnish translation for openobject-addons
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2014-02-18 20:10+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish <fi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-02-19 05:23+0000\n"
"X-Generator: Launchpad (build 16916)\n"
#. module: event_sale
#: model:ir.model,name:event_sale.model_product_product
msgid "Product"
msgstr "Tuote"
#. module: event_sale
#: help:product.product,event_ok:0
msgid ""
"Determine if a product needs to create automatically an event registration "
"at the confirmation of a sales order line."
msgstr ""
#. module: event_sale
#: help:sale.order.line,event_id:0
msgid ""
"Choose an event and it will automatically create a registration for this "
"event."
msgstr ""
"Valitse tapahtuma ja se luo automaattisesti rekisteröinnin kyseiseen "
"tapahtumaan."
#. module: event_sale
#: model:event.event,name:event_sale.event_technical_training
msgid "Technical training in Grand-Rosiere"
msgstr ""
#. module: event_sale
#: help:product.product,event_type_id:0
msgid ""
"Select event types so when we use this product in sales order lines, it will "
"filter events of this type only."
msgstr ""
"Valitse tapahtumatyypit, joiden avulla myyntitilausrivillä voidaan suodattaa "
"vain tämän tyyppiset tapahtumat."
#. module: event_sale
#: field:product.product,event_type_id:0
msgid "Type of Event"
msgstr "Tapahtumatyyppi"
#. module: event_sale
#: field:sale.order.line,event_ok:0
msgid "event_ok"
msgstr ""
#. module: event_sale
#: field:product.product,event_ok:0
msgid "Event Subscription"
msgstr "Tapahtumaan rekisteröityminen"
#. module: event_sale
#: field:sale.order.line,event_type_id:0
msgid "Event Type"
msgstr "Tapahtumatyyppi"
#. module: event_sale
#: model:product.template,name:event_sale.event_product_product_template
msgid "Technical Training"
msgstr "Tekninen koulutus"
#. module: event_sale
#: code:addons/event_sale/event_sale.py:88
#, python-format
msgid "The registration %s has been created from the Sales Order %s."
msgstr "Rekisteröinti %s on luotu myyntitilaukselta %s."
#. module: event_sale
#: field:sale.order.line,event_id:0
msgid "Event"
msgstr "Tapahtuma"
#. module: event_sale
#: model:ir.model,name:event_sale.model_sale_order_line
msgid "Sales Order Line"
msgstr "Myyntitilausrivi"

View File

@ -21,6 +21,7 @@
import logging
from openerp import SUPERUSER_ID
from openerp import tools
from openerp.modules.module import get_module_resource
from openerp.osv import fields, osv
@ -248,27 +249,46 @@ class hr_employee(osv.osv):
'color': 0,
}
def create(self, cr, uid, data, context=None):
if context is None:
context = {}
create_ctx = dict(context, mail_create_nolog=True)
employee_id = super(hr_employee, self).create(cr, uid, data, context=create_ctx)
def _broadcast_welcome(self, cr, uid, employee_id, context=None):
""" Broadcast the welcome message to all users in the employee company. """
employee = self.browse(cr, uid, employee_id, context=context)
partner_ids = []
_model, group_id = self.pool['ir.model.data'].get_object_reference(cr, uid, 'base', 'group_user')
if employee.user_id:
res_users = self.pool['res.users']
# send a copy to every user of the company
# TODO: post to the `Whole Company` mail.group when we'll be able to link to the employee record
_model, group_id = self.pool['ir.model.data'].get_object_reference(cr, uid, 'base', 'group_user')
user_ids = res_users.search(cr, uid, [('company_id', '=', employee.user_id.company_id.id),
('groups_id', 'in', group_id)])
partner_ids = list(set(u.partner_id.id for u in res_users.browse(cr, uid, user_ids, context=context)))
company_id = employee.user_id.company_id.id
elif employee.company_id:
company_id = employee.company_id.id
elif employee.job_id:
company_id = employee.job_id.company_id.id
elif employee.department_id:
company_id = employee.department_id.company_id.id
else:
partner_ids = []
self.message_post(cr, uid, [employee_id],
company_id = self.pool['res.company']._company_default_get(cr, uid, 'hr.employee', context=context)
res_users = self.pool['res.users']
user_ids = res_users.search(
cr, SUPERUSER_ID, [
('company_id', '=', company_id),
('groups_id', 'in', group_id)
], context=context)
partner_ids = list(set(u.partner_id.id for u in res_users.browse(cr, SUPERUSER_ID, user_ids, context=context)))
self.message_post(
cr, uid, [employee_id],
body=_('Welcome to %s! Please help him/her take the first steps with OpenERP!') % (employee.name),
partner_ids=partner_ids,
subtype='mail.mt_comment', context=context
)
return True
def create(self, cr, uid, data, context=None):
if context is None:
context = {}
if context.get("mail_broadcast"):
context['mail_create_nolog'] = True
employee_id = super(hr_employee, self).create(cr, uid, data, context=context)
if context.get("mail_broadcast"):
self._broadcast_welcome(cr, uid, employee_id, context=context)
return employee_id
def unlink(self, cr, uid, ids, context=None):

View File

@ -453,6 +453,7 @@ class hr_applicant(osv.Model):
contact_name = self.pool.get('res.partner').name_get(cr, uid, [applicant.partner_id.id])[0][1]
if applicant.job_id and (applicant.partner_name or contact_name):
applicant.job_id.write({'no_of_hired_employee': applicant.job_id.no_of_hired_employee + 1}, context=context)
create_ctx = dict(context, mail_broadcast=True)
emp_id = hr_employee.create(cr, uid, {'name': applicant.partner_name or contact_name,
'job_id': applicant.job_id.id,
'address_home_id': address_id,
@ -460,7 +461,7 @@ class hr_applicant(osv.Model):
'address_id': applicant.company_id and applicant.company_id.partner_id and applicant.company_id.partner_id.id or False,
'work_email': applicant.department_id and applicant.department_id.company_id and applicant.department_id.company_id.email or False,
'work_phone': applicant.department_id and applicant.department_id.company_id and applicant.department_id.company_id.phone or False,
})
}, context=create_ctx)
self.write(cr, uid, [applicant.id], {'emp_id': emp_id}, context=context)
self.pool['hr.job'].message_post(
cr, uid, [applicant.job_id.id],

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -0,0 +1,548 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1600px"
height="1200px"
id="svg2985"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="posbox_doc_schema.svg"
inkscape:export-filename="/home/fva/Code/openerp/posbox_doc_schema.png"
inkscape:export-xdpi="67.5"
inkscape:export-ydpi="67.5">
<defs
id="defs2987">
<marker
inkscape:stockid="DotL"
orient="auto"
refY="0.0"
refX="0.0"
id="DotL"
style="overflow:visible">
<path
id="path6730"
d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
transform="scale(0.8) translate(7.4, 1)" />
</marker>
<marker
inkscape:stockid="DotM"
orient="auto"
refY="0.0"
refX="0.0"
id="DotM"
style="overflow:visible">
<path
id="path6733"
d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
transform="scale(0.4) translate(7.4, 1)" />
</marker>
<pattern
inkscape:collect="always"
xlink:href="#Strips1_3"
id="pattern6512"
patternTransform="matrix(1.4070053,-1.4070053,10.196067,10.196067,0,0)" />
<pattern
inkscape:stockid="Stripes 1:3"
id="Strips1_3"
patternTransform="translate(0,0) scale(10,10)"
height="1"
width="4"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4622"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="0.45254834"
inkscape:cx="679.01909"
inkscape:cy="813.9637"
inkscape:current-layer="layer1"
inkscape:document-units="px"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata2990">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g7313">
<g
transform="translate(0,35.355339)"
id="g6566">
<g
id="g6514"
transform="translate(-10.9375,-57.8125)">
<path
inkscape:connector-curvature="0"
id="path6489"
d="m 905,179.59375 -34.8125,31.34375 -118.78125,0 c -5.54,0 -10,4.46 -10,10 l 0,102.5 -157.5,0 c -16.62,0 -30,13.38 -30,30 l 0,632.3125 -27.4375,24.9375 33.25,44.2813 c 0.10609,0.1442 0.2039,0.2952 0.3125,0.4374 l 2.125,2.8126 0.21875,-0.125 c 5.44486,5.6076 13.06148,9.0937 21.53125,9.0937 l 463.43755,0 c 16.6199,0 30,-13.38 30,-30 l 0,-683.75 c 0,-10.90688 -5.7475,-20.40588 -14.4063,-25.65625 l -41.125,-31 -27.3125,26.65625 -45.28125,0 0,-102.5 c 0,-2.89877 -1.22955,-5.48931 -3.1875,-7.3125 l 0.25,-0.375 L 905,179.59375 z"
style="opacity:0.25;fill:url(#pattern6512);fill-opacity:1;stroke:none" />
<g
transform="translate(-2.2097087,75.130096)"
id="g3823">
<g
id="g3847">
<rect
ry="5.274591"
y="106.16312"
x="711.8349"
height="151.06096"
width="194.27489"
id="rect3843"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:8.48901749;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
rx="5.274591" />
<rect
rx="5.274591"
style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3845"
width="175.41872"
height="151.06096"
x="721.263"
y="106.16312"
ry="5.274591" />
</g>
<rect
rx="5.274591"
ry="5.274591"
y="869.83844"
x="746.01172"
height="110.99157"
width="131.81378"
id="rect3765"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:8.48901749;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:8.48901749;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect6618"
width="125.18465"
height="53.539146"
x="938.25635"
y="571.52777"
ry="5.274591"
rx="5.274591" />
<rect
rx="34.723557"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:8;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect2993"
width="509.11688"
height="730.677"
x="525.61603"
y="217.12157"
ry="34.723557" />
<rect
rx="21.787001"
ry="21.787001"
y="235.37366"
x="543.0672"
height="694.12708"
width="474.21454"
id="rect3763"
style="fill:none;stroke:#000000;stroke-width:1.99425566;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
style="fill:none;stroke:#000000;stroke-width:1.99425554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3767"
width="160.64433"
height="9.1270761"
x="562.84052"
y="740.37366"
rx="5.3000002"
ry="5.3000002" />
<rect
ry="5.3000002"
rx="5.2999997"
y="667.30597"
x="828.00549"
height="9.1270761"
width="73.434502"
id="rect3769"
style="fill:none;stroke:#000000;stroke-width:1.99399996;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
ry="5.3000002"
rx="5.3000002"
y="313.75256"
x="693.65527"
height="9.1270761"
width="160.64433"
id="rect3771"
style="fill:none;stroke:#000000;stroke-width:1.99425554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<g
id="g3783">
<rect
ry="5.3000002"
rx="5.3000002"
y="245.39903"
x="962.35583"
height="271.93509"
width="43.971706"
id="rect3773"
style="fill:none;stroke:#000000;stroke-width:1.99425554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
ry="5.3000002"
rx="5.3000002"
y="374.20874"
x="952.03491"
height="7.0710678"
width="21.213203"
id="rect3775"
style="fill:#ffffff;fill-opacity:1;stroke:none" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="rect3777"
width="21.213203"
height="7.0710678"
x="992.86823"
y="373.3754"
rx="5.3000002"
ry="5.3000002" />
<rect
transform="matrix(0,-1,1,0,0,0)"
ry="5.3000002"
rx="5.3000002"
y="981.60596"
x="-260.01752"
height="7.0710678"
width="21.213203"
id="rect3779"
style="fill:#ffffff;fill-opacity:1;stroke:none" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="rect3781"
width="21.213203"
height="7.0710678"
x="-526.6842"
y="981.60596"
rx="5.3000002"
ry="5.3000002"
transform="matrix(0,-1,1,0,0,0)" />
</g>
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 958.1875,822.25 c -9.01707,3.59482 -15.375,12.41301 -15.375,22.71875 0,13.50563 10.93187,24.46875 24.4375,24.46875 13.50563,0 24.46875,-10.96312 24.46875,-24.46875 0,-10.17788 -6.2141,-18.91637 -15.0625,-22.59375 l 0,8.8125 c 4.63325,2.9517 7.6875,8.02222 7.6875,13.78125 0,9.11223 -7.65608,16.5 -17.09375,16.5 -9.43767,0 -17.0625,-7.38777 -17.0625,-16.5 0,-5.88681 3.20248,-11.04837 8,-13.96875 l 0,-8.75 z"
id="path3792" />
<g
id="g3818"
transform="translate(0,-1.767767)">
<rect
ry="5.3000002"
rx="5.2999992"
y="879.66095"
x="943.13324"
height="8.7558908"
width="46.827415"
id="rect3794"
style="fill:none;stroke:#000000;stroke-width:1.99399996;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
style="fill:none;stroke:#000000;stroke-width:1.99399996;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3798"
width="46.827415"
height="8.7558908"
x="943.13324"
y="895.68982"
rx="5.2999992"
ry="5.3000002" />
<rect
ry="5.3000002"
rx="5.2999992"
y="910.22754"
x="943.13324"
height="8.7558908"
width="46.827415"
id="rect3800"
style="fill:none;stroke:#000000;stroke-width:1.99399996;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<rect
ry="5.3000002"
rx="5.2999992"
y="963.05292"
x="-845.58075"
height="8.7558908"
width="32.390652"
id="rect3812"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.99400008;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
transform="matrix(0,-1,1,0,0,0)" />
</g>
</g>
<g
id="g6559"
transform="translate(0,-7.7339804)">
<path
transform="matrix(1,0,0,0.85333333,0,117.03125)"
d="m 1119.5313,856.64062 c 0,5.82488 -4.1974,10.54688 -9.375,10.54688 -5.1777,0 -9.375,-4.722 -9.375,-10.54688 0,-5.82487 4.1973,-10.54687 9.375,-10.54687 5.1776,0 9.375,4.722 9.375,10.54687 z"
sodipodi:ry="10.546875"
sodipodi:rx="9.375"
sodipodi:cy="856.64062"
sodipodi:cx="1110.1562"
id="path6539"
style="fill:#00fd28;fill-opacity:1;stroke:#000000;stroke-width:2.16506362;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#ff0d0d;fill-opacity:1;stroke:#000000;stroke-width:2.16506362;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path6541"
sodipodi:cx="1110.1562"
sodipodi:cy="856.64062"
sodipodi:rx="9.375"
sodipodi:ry="10.546875"
d="m 1119.5313,856.64062 c 0,5.82488 -4.1974,10.54688 -9.375,10.54688 -5.1777,0 -9.375,-4.722 -9.375,-10.54688 0,-5.82487 4.1973,-10.54687 9.375,-10.54687 5.1776,0 9.375,4.722 9.375,10.54687 z"
transform="matrix(1,0,0,0.85333333,0,141.44531)" />
<path
transform="matrix(1,0,0,0.85333333,0,165.85937)"
d="m 1119.5313,856.64062 c 0,5.82488 -4.1974,10.54688 -9.375,10.54688 -5.1777,0 -9.375,-4.722 -9.375,-10.54688 0,-5.82487 4.1973,-10.54687 9.375,-10.54687 5.1776,0 9.375,4.722 9.375,10.54687 z"
sodipodi:ry="10.546875"
sodipodi:rx="9.375"
sodipodi:cy="856.64062"
sodipodi:cx="1110.1562"
id="path6543"
style="fill:#00fd28;fill-opacity:1;stroke:#000000;stroke-width:2.16506362;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#00fd28;fill-opacity:1;stroke:#000000;stroke-width:2.16506362;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path6545"
sodipodi:cx="1110.1562"
sodipodi:cy="856.64062"
sodipodi:rx="9.375"
sodipodi:ry="10.546875"
d="m 1119.5313,856.64062 c 0,5.82488 -4.1974,10.54688 -9.375,10.54688 -5.1777,0 -9.375,-4.722 -9.375,-10.54688 0,-5.82487 4.1973,-10.54687 9.375,-10.54687 5.1776,0 9.375,4.722 9.375,10.54687 z"
transform="matrix(1,0,0,0.85333333,0,190.27344)" />
<path
transform="matrix(1,0,0,0.85333333,0,214.6875)"
d="m 1119.5313,856.64062 c 0,5.82488 -4.1974,10.54688 -9.375,10.54688 -5.1777,0 -9.375,-4.722 -9.375,-10.54688 0,-5.82487 4.1973,-10.54687 9.375,-10.54687 5.1776,0 9.375,4.722 9.375,10.54687 z"
sodipodi:ry="10.546875"
sodipodi:rx="9.375"
sodipodi:cy="856.64062"
sodipodi:cx="1110.1562"
id="path6547"
style="fill:#fff90d;fill-opacity:1;stroke:#000000;stroke-width:2.16506362;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
</g>
</g>
<text
sodipodi:linespacing="125%"
id="text6598"
y="178.8759"
x="514.01447"
style="font-size:36.98903275px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
y="178.8759"
x="514.01447"
id="tspan6600"
sodipodi:role="line">2A Power</tspan></text>
<text
xml:space="preserve"
style="font-size:36.98903275px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="724.2699"
y="127.21583"
id="text6602"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan6604"
x="724.2699"
y="127.21583"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">SD Card</tspan></text>
<text
sodipodi:linespacing="125%"
id="text6606"
y="626.60999"
x="319.89322"
style="font-size:36.98903275px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
y="626.60999"
x="319.89322"
id="tspan6608"
sodipodi:role="line">HDMI</tspan></text>
<text
xml:space="preserve"
style="font-size:36.98903275px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="761.83496"
y="1097.278"
id="text6610"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan6612"
x="761.83496"
y="1097.278"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">USB</tspan></text>
<text
sodipodi:linespacing="125%"
id="text6614"
y="1097.278"
x="596.10681"
style="font-size:36.98903275px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
y="1097.278"
x="596.10681"
id="tspan6616"
sodipodi:role="line">RJ45</tspan></text>
<text
xml:space="preserve"
style="font-size:36.98903275px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="1135.8894"
y="660.90717"
id="text6620"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan6622"
x="1135.8894"
y="660.90717"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">Composite</tspan></text>
<text
sodipodi:linespacing="125%"
id="text6624"
y="774.18842"
x="1135.8894"
style="font-size:36.98903275px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
y="774.18842"
x="1135.8894"
id="tspan6626"
sodipodi:role="line">Audio</tspan></text>
<text
xml:space="preserve"
style="font-size:36.98903275px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="1135.8894"
y="774.18842"
id="text6628"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan6630"
x="1135.8894"
y="774.18842"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">Audio</tspan></text>
<text
sodipodi:linespacing="125%"
id="text6632"
y="891.37592"
x="1212.4519"
style="font-size:36.98903275px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
y="891.37592"
x="1212.4519"
id="tspan6634"
sodipodi:role="line">Ready</tspan></text>
<text
xml:space="preserve"
style="font-size:36.98903275px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="1212.4519"
y="940.45667"
id="text6636"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan6638"
x="1212.4519"
y="940.45667"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">Power</tspan></text>
<text
sodipodi:linespacing="125%"
id="text6640"
y="986.97278"
x="1212.4519"
style="font-size:36.98903275px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
y="986.97278"
x="1212.4519"
id="tspan6642"
sodipodi:role="line">Network</tspan></text>
<path
inkscape:connector-curvature="0"
id="path6663"
d="m 437.5,614.15728 54.6875,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL)"
d="m 601.86625,199.79103 0,54.6875"
id="path7295"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path7297"
d="m 1113.1075,650.87603 -54.6875,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL)" />
<path
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL)"
d="m 1113.1075,761.81353 -76.5625,0"
id="path7299"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL)"
d="m 1192.657,876.26632 -54.6875,0"
id="path7301"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path7303"
d="m 1192.657,927.08963 -54.6875,-27.62136"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL)"
d="m 1192.657,974.04593 -54.6875,0"
id="path7305"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path7307"
d="m 1192.657,974.04593 -54.6875,-24.85922"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL)"
d="m 1192.657,974.04593 -54.6875,-49.16602"
id="path7309"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL)"
d="m 630.03792,1053.883 0,-32.0313"
id="path7311"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -0,0 +1,395 @@
====================
PosBox Documentation
====================
Posbox Setup Guide
==================
Prerequisites
-------------
Before you start setting up your PosPox make sure you have everything.
You will need :
- The PosBox
- A 2A Power adapter
- A computer or tablet with an up to date Firefox, Chrome or Safari web
browser (we recommend Chrome)
- A running SaaS or V8.0 OpenERP Instance with the Point of Sale
Installed.
- A local network set up with DHCP ( this is the default setting )
- A RJ45 Ethrnet Cable
- An Epson USB TM-T20 Printer or another compatible printer.
- A Honewell Voyager USB Barcode Scanner or another compatible scanner.
- An Epson compatible cash drawer.
Setup
-----
.. image:: _images/posbox_doc_schema.png
:width: 100%
:align: center
1) Power the PosBox.
~~~~~~~~~~~~~~~~~~~~
Plug the PosBox to the 2A Power Adapter, a bright red status led should
light up.
2) Connect it to the Local Network
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Connect the PosBox to the Local Network with the RJ45 Cable. Make sure
You connect the PosBox to the same Network as your POS device. Once
connected a bright yellow status led should light up, and a green status
led should flash.
3) Connect the USB Printer
~~~~~~~~~~~~~~~~~~~~~~~~~~
Put a paper roll in the printer, power it up, then connect it to one of
the PosBox's USB port
4) Connect the cash drawer
~~~~~~~~~~~~~~~~~~~~~~~~~~
The cash drawer should be connected to the printer with the RJ25 cable
5) Connect the USB Barcode Scanner
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Connect the usb barcode scanner to one of the PosBox's USB port. The
Barcode Scanner should immediately light up and emit a loud beep.
6) Configure the USB Barcode Scanner
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The barcode scanner should be configured in QWERTY and emit a new line /
return symbol after each scan. This is most likely the default
configuration of your barcode scanner.
7) Make sure the PosBox is ready
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Once powered, The PosBox needs less than a minute to boot. Once the
PosBox is ready, it should print a status receipt with its IP Adress.
Also, the last status led, just after the red power status led, should
be permanently lit green.
8) Set up the Point of Sale
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Make sure to activate the 'Print via Proxy', 'Remote Scanning' or
'Cashdrawer' options in the Point of Sale configuration. If you are
using firefox, you must manually specify the PosBox's IP address which
was printed on the status receipt.
If you are running multiple Point of Sales on the same PosBox, make sure
that only one of them has Remote Scanning activated.
9) Launch the Point of Sale.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you didn't spcecify the PosBox's IP address in the config, the POS
will need some time to perform a network scan to find the PosBox. This
is only done once.
The Point of Sale is now connected to the PosBox and your Hardware
should be ready to use.
PosBoxless Setup Guide
======================
If you are running your Point of Sale on a debian-based linux
distribution, you do not need the PosBox as you can run its software
locally. However the installation process is not foolproof. You'll need
at least to know how to install and run openerp. You may also run into
issues specific to your distribution or to your particular setup and
hardware configuration.
Prerequisites
-------------
- A debian based linux distribution (Debian, Ubuntu, Mint, etc.)
- A running trunk version of the OpenERP server
- You must uninstall any esc-pos printer driver as it will conflict
with OpenERP's built-in driver.
Setup
-----
1) Extra dependencies
~~~~~~~~~~~~~~~~~~~~~
The driver modules requires the installation of new python modules:
::
$ sudo pip install pyserial
$ sudo pip install --pre pyusb
2) Database Setup
~~~~~~~~~~~~~~~~~
You must create a database called ``posbox`` with the modules
``hw_proxy``, ``hw_escpos``, and ``hw_scanner`` installed.
3) Access Rights
~~~~~~~~~~~~~~~~
The drivers need raw access to the printer and barcode scanner devices.
Doing so requires a bit system administration. First we are going to
create a group that has haccess to usb devices:
::
$ sudo groupadd usbusers
Then we add the user who will run the OpenERP server to ``usbusers``
::
$ sudo useradd -G usbusers USERNAME
Then we need to create a udev rule that will automatically allow members
of ``usbusers`` to access raw usb devices. To do so create a file called
``99-usbusers.rule`` in the ``/etc/udev/rules.d/`` directory with the
following content:
::
SUBSYSTEM=="usb", GROUP="usbusers", MODE="0660"
SUBSYSTEMS=="usb", GROUP="usbusers", MODE="0660"
Then you need to reboot your machine.
4) Start the local OpenERP Installl
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We must launch the OpenERP server on the port ``8069`` with the correct
database settings:
::
$ ./server/openerp-server --addons-path=addons,web/addons --db-filter='^posbox$' \
--xmlrpc-port=8069 -d posbox
5) Check that everything works
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Plug all your hardware to your machine's USB ports, and go to
``http://localhost/hw_proxy/status`` refresh the page a few times and
see if all your devices are indicated as *Connected*. Possible source of
errors are: The paths on the distribution differ from the paths expected
by the drivers, another process has grabbed exclusive access to the
devices, the udev rules do not apply or a superceeded by others.
5) Automatically Start OpenERP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You must now make sure that this OpenERP install is automatically
started after boot. There are various ways to do so, and how to do it
depends on your particular setup. We use *systemd* on the PosBox, but
*upstart* or *sysvinit* are other options.
6) Set up the Point of Sale
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Make sure that one of the posbox Make sure the IP Adress field in the
POS Config is either ``127.0.0.1`` or ``localhost`` or simply leave it
empty.
PosBox Technical Documentation
==============================
Technical Overview
------------------
The PosBox Hardware
~~~~~~~~~~~~~~~~~~~
The PosBox's Hardware is based on a model B Raspberry Pi, a popular
open-source micro-computer. The Raspberry Pi is powered with a 2A
micro-usb power adapter. 2A is needed to give enough power to the
barcode scanners. And we recommend Samsung power adapters for their
availability and reliability ( but beware of counterfeits ). The
Raspberry is protected by a ModMyPi Raspberry Pi Case. The Software is
installed on a 8Gb Class 10 or Higher SD Card. The SD Card's class is
important to ensure good performances. All this hardware is easily
available worldwide from independant vendors.
Compatible Peripherals
~~~~~~~~~~~~~~~~~~~~~~
- Printers:
- Epson TM-T20
- Support for Other Esc-Pos compatible printers can be easily added
on a case-by-case basis, please see the *Unsupported Printers*
chapter of this manual.
- Barcode Scannners:
- Metapace S61
- Honeywell Voyager 95x0 Series.
- Most other barcode scanners should work out of the box. Some
barcode scanners need more power than the PosBox can provide and
must be plugged in a self-powered USB HUB. This is the case for
Datalogic Barcode Scanners.
- Cash Drawers:
- As the cash drawers are connected to the printer, All Epson
compatible cash drawers should work out of the Box.
The PosBox Software
~~~~~~~~~~~~~~~~~~~
The PosBox runs a Raspbian Linux distribution, a Debian derivative
optimized for the Raspberry Pi. It also runs a barebones install of
OpenERP which provides the webserver and the drivers. The printer &
scanner drivers are implemented as openerp modules. Those modules are
named ``hw_proxy``, ``hw_escpos``, ``hw_scanner`` and are the only
modules installed and running. OpenERP is only used for the framework it
provides. No business data is processed or stored on the PosBox. The
OpenERP install is a full bazaar clone of the ``trunk`` branch, and can
thus be updated trough the usual means.
We use systemd to manage the Openerp server. Systemd makes sure OpenERP
starts up at boot and is always up and running. Its systemd unit file is
called ``openerp.service``, and can be found in
``/etc/systemd/system/openerp.service``. The systemd version used is
quite old and thus ``journalctl`` is not available. All logs can be
found in instead ``/var/logs/syslog``
We removed all graphical software from the default install to reduce to
image size but nothing prevents you from reinstalling them.
Local Access
~~~~~~~~~~~~
If you plug a QWERTY USB keyboard into one of the PosBox's USB ports,
and if you connect a computer monitor to the *HDMI* port of the PosBox,
you can use it as a small UNIX computer and perform various
administration tasks.
Once the PosBox is ready press ``ALT-F2`` to access the login prompt.
The login is ``pi`` and the password ``admin``. The OpenERP install is
in the ``~/openerp`` directory along with a few scripts to help with
debugging and administration.
Remote Access
~~~~~~~~~~~~~
If you have the PosBox's IP address and a SSH client you can access the
PosBox's system remotely. The login / password are ``pi``/``admin``
Unsupported Printers
~~~~~~~~~~~~~~~~~~~~
The PosBox should be able to print to any ESC-POS printer, not just the
Epson TM-T20. If You have such a printer, you can activate it with the
following steps:
- Get local or remote access to the PosBox.
- Plug in your printer
- type ``lsusb`` in a prompt
- Find your printer in the list of connected USB devices
- Find your printer's vendor id: It consists of two hexadecimal numbers
separated by a colon.
- Edit ``~/openerp/addons/hw_escpos/escpos/supported_devices.py`` and
add an entry for your printer.
- Restar The PosBox.
- If everything works properly you can send your printer's name and
vendor ID to ``support@openerp.com`` and we'll add it to the list of
supported devices.
Updating The PosBox Software
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The best way to update the PosBox software is to download a new version
of the image and flash the SD-Card with it. This operation is described
in details on the following tutorial
``http://elinux.org/RPi_Easy_SD_Card_Setup``, just replace the standard
raspberry pi image to the latest one found at
``http://nightly.openerp.com/trunk/posbox/``
Troubleshoot
------------
The POS cannot connect to the PosBox.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The easiest way to make sure the PosBox is properly set-up is to turn
it on with the printer plugged in as it will print a receipt
indicating any error if encountered or the PosBox's IP adress in case
of success. If no receipt is printed, check the following steps:
- Make sure the PosBox is powered on, indicated by a brightly lid red
status LED.
- Make sure the PosBox is ready, this is indicated by a brightly lid
green status LED just above the red power status LED. The PosBox
should be ready one minute after it is powered on.
- Make sure the PosBox is connected to the Network. This is indicated
by a brightly lid yellow status LED.
- Make sure the PosBox is connected to the same network as your POS
device. Both the device and the posbox should be visible in the list
of connected devices on your network router.
- Make sure that your LAN is set up with DHCP, and gives ip Address in
the range 192.168.0.X, 192.168.1.X, 10.0.0.X. If you cannot setup
your LAN that way, you must manually set up your PosBox's ip-address.
See the relevant paragraph in the Setup chapter of this documentation
- If you have specified the PosBox's IP address in the config, make
sure it correspond to the printed on the PosBox's status receipt.
- Make sure that the POS is not loaded over HTTPS.
- A bug in Firefox's HTTP implementation prevents the autodiscovery
from working reliably. When using Firefox you should manually set up
the PosBox's ip address in the POS config.
The Barcode Scanner is not working
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The PosBox needs a 2A power supply to work with some barcode
scanners. If you are not using the provided power supply, make sure
the one you use has enough power.
- Some barcode scanners will need more than 2A and will not work, or
will work unreliably, even with the provided power supply. In those
case you can plug the barcode scanner in a self-powered USB Hub.
- Some poorly built barcode scanners do not advertise themselves as
barcode scanners but as a usb keyboard instead, and will not be
recognized by the PosBox.
The Barcode Scanner is not working reliably
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Make sure that no more than one device with 'Scan via Proxy' enabled
are connected to the PosBox at the same time.
Printing the receipt takes too much time.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- A small delay before the first print is expected, as the PosBox will
do some preprocessing to speed up the next printings. If you suffer
delays afterwards it is most likely due to poor network connection
between the POS and the PosBox.
Some characters are not correctly printed on the receipt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The PosBox does not support all languages and characters. It
currently supports latin and cyrillic based scripts, with basic
japanese support.
The Printer is Offline
~~~~~~~~~~~~~~~~~~~~~~
- The PosBox only supports EPSON TM-T20 printers. Make sure the printer
is connected, powered, has enough paper and has its lid closed, and
does is not in an error status. If the error persists, please contact
support.
The Cashdrawer does not open.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The cashdrawer should be connected to the printer and should be
activated in the POS Configuration

286
addons/note/i18n/fi.po Normal file
View File

@ -0,0 +1,286 @@
# Finnish translation for openobject-addons
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2014-02-18 16:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish <fi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-02-19 05:23+0000\n"
"X-Generator: Launchpad (build 16916)\n"
#. module: note
#: field:note.note,memo:0
msgid "Note Content"
msgstr "Muistiinpanon sisältö"
#. module: note
#: view:note.stage:0
msgid "Stages of Notes"
msgstr "Muistiipanojen vaiheet"
#. module: note
#: model:note.stage,name:note.demo_note_stage_04
#: model:note.stage,name:note.note_stage_02
msgid "This Week"
msgstr "Tämä viikko"
#. module: note
#: model:ir.model,name:note.model_base_config_settings
msgid "base.config.settings"
msgstr ""
#. module: note
#: model:ir.model,name:note.model_note_tag
msgid "Note Tag"
msgstr "Muistiinpanon tunniste"
#. module: note
#: model:res.groups,name:note.group_note_fancy
msgid "Notes / Fancy mode"
msgstr ""
#. module: note
#: model:ir.model,name:note.model_note_note
#: view:note.note:0
msgid "Note"
msgstr "Muistiinpano"
#. module: note
#: view:note.note:0
msgid "Group By..."
msgstr "Ryhmittely..."
#. module: note
#: field:note.note,message_follower_ids:0
msgid "Followers"
msgstr "Seuraajat"
#. module: note
#: model:ir.actions.act_window,help:note.action_note_note
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to add a personal note.\n"
" </p><p>\n"
" Use notes to organize personal tasks or notes. All\n"
" notes are private; no one else will be able to see them. "
"However\n"
" you can share some notes with other people by inviting "
"followers\n"
" on the note. (Useful for meeting minutes, especially if\n"
" you activate the pad feature for collaborative writings).\n"
" </p><p>\n"
" You can customize how you process your notes/tasks by adding,\n"
" removing or modifying columns.\n"
" </p>\n"
" "
msgstr ""
#. module: note
#: model:note.stage,name:note.demo_note_stage_01
#: model:note.stage,name:note.note_stage_01
msgid "Today"
msgstr "Tänään"
#. module: note
#: model:ir.model,name:note.model_res_users
msgid "Users"
msgstr "Käyttäjät"
#. module: note
#: view:note.note:0
msgid "í"
msgstr "í"
#. module: note
#: view:note.stage:0
msgid "Stage of Notes"
msgstr "Muistiinpanojenvaiheet"
#. module: note
#: field:note.note,message_unread:0
msgid "Unread Messages"
msgstr "Lukemattomat viestit"
#. module: note
#: field:note.note,current_partner_id:0
msgid "unknown"
msgstr ""
#. module: note
#: view:note.note:0
msgid "By sticky note Category"
msgstr "Muistilaput ryhmittäin"
#. module: note
#: help:note.note,message_unread:0
msgid "If checked new messages require your attention."
msgstr "Jos valittu, uudet viestit vaativat huomiosi."
#. module: note
#: field:note.stage,name:0
msgid "Stage Name"
msgstr "Vaiheen nimi"
#. module: note
#: field:note.note,message_is_follower:0
msgid "Is a Follower"
msgstr "on seuraaja"
#. module: note
#: model:note.stage,name:note.demo_note_stage_02
msgid "Tomorrow"
msgstr "Huomenna"
#. module: note
#: view:note.note:0
#: field:note.note,open:0
msgid "Active"
msgstr "Aktiivinen"
#. module: note
#: help:note.stage,user_id:0
msgid "Owner of the note stage."
msgstr "Muistiinpanon vaiheen omistaja."
#. module: note
#: model:ir.ui.menu,name:note.menu_notes_stage
msgid "Categories"
msgstr "Ryhmät"
#. module: note
#: view:note.note:0
#: field:note.note,stage_id:0
msgid "Stage"
msgstr "Vaihe"
#. module: note
#: field:note.tag,name:0
msgid "Tag Name"
msgstr "Tunnisteen nimi"
#. module: note
#: field:note.note,message_ids:0
msgid "Messages"
msgstr "Viestit"
#. module: note
#: view:base.config.settings:0
#: model:ir.actions.act_window,name:note.action_note_note
#: model:ir.ui.menu,name:note.menu_note_notes
#: view:note.note:0
#: model:note.stage,name:note.note_stage_04
msgid "Notes"
msgstr "Muistiinpanot"
#. module: note
#: model:note.stage,name:note.demo_note_stage_03
#: model:note.stage,name:note.note_stage_03
msgid "Later"
msgstr "Myöhemmin"
#. module: note
#: model:ir.model,name:note.model_note_stage
msgid "Note Stage"
msgstr "Muistiinpanon vaihe"
#. module: note
#: field:note.note,message_summary:0
msgid "Summary"
msgstr "Yhteenveto"
#. module: note
#: field:note.note,stage_ids:0
msgid "Stages of Users"
msgstr "Käyttäjien vaiheet"
#. module: note
#: field:note.note,name:0
msgid "Note Summary"
msgstr "Muistiinpanon yhteenveto"
#. module: note
#: model:ir.actions.act_window,name:note.action_note_stage
#: view:note.note:0
msgid "Stages"
msgstr "Vaiheet"
#. module: note
#: help:note.note,message_ids:0
msgid "Messages and communication history"
msgstr "Viesti- ja kommunikointihistoria"
#. module: note
#: view:note.note:0
msgid "Delete"
msgstr "Poista"
#. module: note
#: field:note.note,color:0
msgid "Color Index"
msgstr "Väri-indeksi"
#. module: note
#: field:note.note,sequence:0
#: field:note.stage,sequence:0
msgid "Sequence"
msgstr "Järjestysluku"
#. module: note
#: view:note.note:0
#: field:note.note,tag_ids:0
msgid "Tags"
msgstr "Tunnisteet"
#. module: note
#: view:note.note:0
msgid "Archive"
msgstr "Arkisto"
#. module: note
#: field:base.config.settings,module_note_pad:0
msgid "Use collaborative pads (etherpad)"
msgstr "Käytä yhteistyöhön tauluja (Etherpad)"
#. module: note
#: help:note.note,message_summary:0
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
"Sisältää viestien yhteenvedon (viestien määrän,...). Tämä yhteenveto on "
"valmiiksi html-muodossa, jotta se voidaan viedä kanban näkymään."
#. module: note
#: field:base.config.settings,group_note_fancy:0
msgid "Use fancy layouts for notes"
msgstr ""
#. module: note
#: field:note.note,current_partner_id:0
#: field:note.stage,user_id:0
msgid "Owner"
msgstr "Omistaja"
#. module: note
#: help:note.stage,sequence:0
msgid "Used to order the note stages"
msgstr "Käytetään järjestämään muistiinpanon vaiheet"
#. module: note
#: field:note.note,date_done:0
msgid "Date done"
msgstr "Valmis pvm."
#. module: note
#: field:note.stage,fold:0
msgid "Folded by Default"
msgstr "Tyhjää ei näytetä"