[MERGE] trunk

bzr revid: al@openerp.com-20120608165932-qp494qy31xa6oi6t
This commit is contained in:
Antony Lesuisse 2012-06-08 18:59:32 +02:00
commit e9b238bfa7
452 changed files with 28591 additions and 16555 deletions

View File

@ -332,9 +332,12 @@ def httprequest(f):
# OpenERP Web werkzeug Session Managment wraped using with
#----------------------------------------------------------
STORES = {}
SESSION_TIMEOUT = 7 * 24 * 60 * 60 # FIXME make it configurable ?
SESSION_COUNTER = 0
@contextlib.contextmanager
def session_context(request, storage_path, session_cookie='sessionid'):
global SESSION_COUNTER
session_store, session_lock = STORES.get(storage_path, (None, None))
if not session_store:
session_store = werkzeug.contrib.sessions.FilesystemSessionStore(
@ -344,10 +347,22 @@ def session_context(request, storage_path, session_cookie='sessionid'):
sid = request.cookies.get(session_cookie)
with session_lock:
SESSION_COUNTER += 1
if SESSION_COUNTER % 100 == 0:
SESSION_COUNTER = 0
for s in session_store.list():
ss = session_store.get(s)
t = ss.get('timestamp')
if not t or t + SESSION_TIMEOUT < time.time():
_logger.debug('deleting http session %s', s)
session_store.delete(ss)
if sid:
request.session = session_store.get(sid)
else:
request.session = session_store.new()
request.session['timestamp'] = time.time()
try:
yield request.session
@ -364,7 +379,7 @@ def session_context(request, storage_path, session_cookie='sessionid'):
and not value.jsonp_requests
# FIXME do not use a fixed value
and value._creation_time + (60*5) < time.time()):
_logger.debug('remove session %s', key)
_logger.debug('remove OpenERP session %s', key)
removed_sessions.add(key)
del request.session[key]
@ -593,7 +608,7 @@ class LocalConnector(openerplib.Connector):
except Exception,e:
# TODO change the except to raise LibException instead of their emulated xmlrpc fault
if isinstance(e, openerp.osv.osv.except_osv):
fault = xmlrpclib.Fault('warning -- ' + e.name + '\n\n' + e.value, '')
fault = xmlrpclib.Fault('warning -- ' + e.name + '\n\n' + str(e.value), '')
elif isinstance(e, openerp.exceptions.Warning):
fault = xmlrpclib.Fault('warning -- Warning\n\n' + str(e), '')
elif isinstance(e, openerp.exceptions.AccessError):

View File

@ -1467,6 +1467,10 @@ class Binary(openerpweb.Controller):
class Action(openerpweb.Controller):
_cp_path = "/web/action"
action_mapping = {
"ir.actions.act_url": "ir.actions.url",
}
@openerpweb.jsonrequest
def load(self, req, action_id, do_not_eval=False):
@ -1479,7 +1483,9 @@ class Action(openerpweb.Controller):
if action_type[0]['type'] == 'ir.actions.report.xml':
ctx.update({'bin_size': True})
ctx.update(context)
action = req.session.model(action_type[0]['type']).read([action_id], False, ctx)
action_model = action_type[0]['type']
action_model = Action.action_mapping.get(action_model, action_model)
action = req.session.model(action_model).read([action_id], False, ctx)
if action:
value = clean_action(req, action[0], do_not_eval)
return {'result': value}

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Poedit-Language: Czech\n"
#. openerp-web

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172
@ -37,7 +37,7 @@ msgstr "Sende OpenERP Enterprise Bericht"
#. openerp-web
#: addons/web/static/src/js/chrome.js:194
msgid "Dont send"
msgstr "Sende nicht"
msgstr "Nicht senden"
#. openerp-web
#: addons/web/static/src/js/chrome.js:256
@ -74,7 +74,7 @@ msgstr "Datenbank erfolgreich wiederhergestellt"
#: addons/web/static/src/js/chrome.js:708
#: addons/web/static/src/xml/base.xml:359
msgid "About"
msgstr "Info"
msgstr "Über"
#. openerp-web
#: addons/web/static/src/js/chrome.js:787
@ -205,7 +205,7 @@ msgstr "Download \"%s\""
#. openerp-web
#: addons/web/static/src/js/search.js:191
msgid "Filter disabled due to invalid syntax"
msgstr ""
msgstr "Filter wegen falscher Syntax deaktiviert"
#. openerp-web
#: addons/web/static/src/js/search.js:237
@ -440,12 +440,12 @@ msgstr "Sicht Editor %d - %s"
#. openerp-web
#: addons/web/static/src/js/view_editor.js:367
msgid "Inherited View"
msgstr ""
msgstr "Vererbte Ansicht"
#. openerp-web
#: addons/web/static/src/js/view_editor.js:371
msgid "Do you really wants to create an inherited view here?"
msgstr ""
msgstr "Möchten Sie wirklich eine vererbte Ansicht anlegen?"
#. openerp-web
#: addons/web/static/src/js/view_editor.js:381
@ -485,7 +485,7 @@ msgstr "Anpassen"
#: addons/web/static/src/js/view_form.js:686
#: addons/web/static/src/js/view_form.js:692
msgid "Set Default"
msgstr ""
msgstr "Standardwert setzen"
#. openerp-web
#: addons/web/static/src/js/view_form.js:469
@ -499,7 +499,7 @@ msgstr ""
#: addons/web/static/src/js/view_form.js:693
#: addons/web/static/src/js/view_form.js:699
msgid "Save default"
msgstr ""
msgstr "Standardwert speichern"
#. openerp-web
#: addons/web/static/src/js/view_form.js:754
@ -1059,22 +1059,22 @@ msgstr "Anhang hinzufügen"
#. openerp-web
#: addons/web/static/src/xml/base.xml:801
msgid "Default:"
msgstr ""
msgstr "Standard:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:818
msgid "Condition:"
msgstr ""
msgstr "Bedingung:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:837
msgid "Only you"
msgstr ""
msgstr "Nur für Sie"
#. openerp-web
#: addons/web/static/src/xml/base.xml:844
msgid "All users"
msgstr ""
msgstr "Für alle Benutzer"
#. openerp-web
#: addons/web/static/src/xml/base.xml:851
@ -1135,7 +1135,7 @@ msgstr "Domäne:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:968
msgid "Change default:"
msgstr ""
msgstr "Standardwert ändern:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:972

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"Language: es\n"
#. openerp-web

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

1544
addons/web/i18n/hu.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172
@ -243,6 +243,7 @@ msgstr "ინიცირებულია ძიების ვიუდა
#, python-format
msgid "Incorrect value for field %(fieldname)s: [%(value)s] is %(message)s"
msgstr ""
"არასწორი მნიშვნელობა ველისთვის %(fieldname)s: [%(value)s] არის %(message)s"
#. openerp-web
#: addons/web/static/src/js/search.js:839
@ -555,20 +556,20 @@ msgstr "ღია: "
#: addons/web/static/src/js/view_form.js:2049
#: addons/web/static/src/js/view_form.js:2061
msgid "<em>   Search More...</em>"
msgstr ""
msgstr "<em>    ვეძებოთ მეტი...</em>"
#. openerp-web
#: addons/web/static/src/js/view_form.js:2062
#: addons/web/static/src/js/view_form.js:2074
#, python-format
msgid "<em>   Create \"<strong>%s</strong>\"</em>"
msgstr ""
msgstr "<em>   შევქმნათ \"<strong>%s</strong>\"</em>"
#. openerp-web
#: addons/web/static/src/js/view_form.js:2068
#: addons/web/static/src/js/view_form.js:2080
msgid "<em>   Create and Edit...</em>"
msgstr ""
msgstr "<em>   შევქმნათ და შევცვალოთ...</em>"
#. openerp-web
#: addons/web/static/src/js/view_form.js:2101
@ -615,7 +616,7 @@ msgstr "შეუზღუდავი"
#: addons/web/static/src/js/view_list.js:309
#, python-format
msgid "[%(first_record)d to %(last_record)d] of %(records_count)d"
msgstr ""
msgstr "[%(first_record)d %(last_record)d]მდე %(records_count)dდან"
#. openerp-web
#: addons/web/static/src/js/view_list.js:524
@ -634,7 +635,7 @@ msgstr "განუსაზღვრელი"
#: addons/web/static/src/js/view_list.js:1331
#, python-format
msgid "%(page)d/%(page_count)d"
msgstr ""
msgstr "%(page)d/%(page_count)d"
#. openerp-web
#: addons/web/static/src/js/view_page.js:8
@ -655,7 +656,7 @@ msgstr "განშტოება"
#: addons/web/static/src/js/views.js:565
#: addons/web/static/src/xml/base.xml:480
msgid "Fields View Get"
msgstr ""
msgstr "ველების ხედის მიღება"
#. openerp-web
#: addons/web/static/src/js/views.js:573
@ -667,7 +668,7 @@ msgstr "ლოგის ნახვა (%s)"
#: addons/web/static/src/js/views.js:600
#, python-format
msgid "Model %s fields"
msgstr ""
msgstr "%s მოდელის ველები"
#. openerp-web
#: addons/web/static/src/js/views.js:610
@ -678,7 +679,7 @@ msgstr "ვიუების მართვა"
#. openerp-web
#: addons/web/static/src/js/views.js:611
msgid "Could not find current view declaration"
msgstr ""
msgstr "ვერ ვპოულობ მიმდინარე ხედის განაცხადს"
#. openerp-web
#: addons/web/static/src/js/views.js:805
@ -748,7 +749,7 @@ msgstr "მხარდაჭერილია"
#: addons/web/static/src/xml/base.xml:315
#: addons/web/static/src/xml/base.xml:1813
msgid "OpenERP"
msgstr ""
msgstr "OpenERP"
#. openerp-web
#: addons/web/static/src/xml/base.xml:52
@ -871,7 +872,7 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:251
msgid "OpenERP Entreprise"
msgstr ""
msgstr "OpenERP Entreprise"
#. openerp-web
#: addons/web/static/src/xml/base.xml:256
@ -942,12 +943,12 @@ msgstr "სისტემიდან გამოსვლა"
#. openerp-web
#: addons/web/static/src/xml/base.xml:388
msgid "Fold menu"
msgstr ""
msgstr "მენიუს ჩაკეცვა"
#. openerp-web
#: addons/web/static/src/xml/base.xml:389
msgid "Unfold menu"
msgstr ""
msgstr "მენიუს ამოკეცვა"
#. openerp-web
#: addons/web/static/src/xml/base.xml:454
@ -1012,27 +1013,27 @@ msgstr "ID:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:494
msgid "XML ID:"
msgstr ""
msgstr "XML ID:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:497
msgid "Creation User:"
msgstr ""
msgstr "შემქმნელი:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:500
msgid "Creation Date:"
msgstr ""
msgstr "შექმნის თარიღი:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:503
msgid "Latest Modification by:"
msgstr ""
msgstr "ბოლოს განახლდა:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:506
msgid "Latest Modification Date:"
msgstr ""
msgstr "განახლების თარიღი:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:542
@ -1079,12 +1080,12 @@ msgstr "ყველა მომხმარებელი"
#. openerp-web
#: addons/web/static/src/xml/base.xml:851
msgid "Unhandled widget"
msgstr ""
msgstr "ვიჯეტი მხარდაჭერის გარეშე"
#. openerp-web
#: addons/web/static/src/xml/base.xml:900
msgid "Notebook Page \""
msgstr ""
msgstr "წიგნაკის გვერდი \""
#. openerp-web
#: addons/web/static/src/xml/base.xml:905
@ -1095,7 +1096,7 @@ msgstr "მოდიფიკატორი:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:931
msgid "(nolabel)"
msgstr ""
msgstr "(იარლიყის გარეშე)"
#. openerp-web
#: addons/web/static/src/xml/base.xml:936
@ -1227,7 +1228,7 @@ msgstr "ღილაკი"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1241
msgid "(no string)"
msgstr ""
msgstr "(მწკრივი არ არის)"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1248
@ -1262,12 +1263,12 @@ msgstr "ფილტრები"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1280
msgid "-- Filters --"
msgstr ""
msgstr "--ფილტრები--"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1289
msgid "-- Actions --"
msgstr ""
msgstr "--ქმედებები--"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1290
@ -1292,7 +1293,7 @@ msgstr "ფილტრის სახელი:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1300
msgid "(Any existing filter with the same name will be replaced)"
msgstr ""
msgstr "(ამავე სახელწოდების არსებული ფილტრები იქნება ჩანაცვლებული)"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1305
@ -1352,6 +1353,10 @@ msgid ""
" You can export all data or only the fields that can be "
"reimported after modification."
msgstr ""
"ეს მასტერი იმ მონაცემებს, რომლებიც აკმაყოფილებს მიმდინარე ძიების კრიტერიუმს, "
"გადაიტანს CSV file-ში. \n"
"თქვენ შეგიძლიათ გადაიტანოთ ყველა მონაცემი ან მხოლოდ ის ველები, რომელთა "
"მოდიფიცირების შემდგომი იმპორტირებაც შესაძლებელია."
#. openerp-web
#: addons/web/static/src/xml/base.xml:1618
@ -1434,6 +1439,10 @@ msgid ""
"Select a .CSV file to import. If you need a sample of file to import,\n"
" you should use the export tool with the \"Import Compatible\" option."
msgstr ""
"აირჩიეთ .CSV ფაილი იმპორტირებისთვის. თუკი თქვენ გჭირდებათ ასეთი ფაილის "
"მაგალითი, \n"
"ისარგებლეთ ექსპორტის ინსტრუმენტით, რომელსაც აქვს \"იმპორტთან შეთანაწყობის\" "
"ოფცია."
#. openerp-web
#: addons/web/static/src/xml/base.xml:1747
@ -1478,12 +1487,12 @@ msgstr "UTF-8"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1773
msgid "Latin 1"
msgstr ""
msgstr "Latin 1"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1776
msgid "Lines to skip"
msgstr ""
msgstr "გამოსატოვებელი ხაზები"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1776
@ -1491,16 +1500,18 @@ msgid ""
"For use if CSV files have titles on multiple lines, skips more than a single "
"line during import"
msgstr ""
"გამოყენებისთვის, თუკი CSV ფაილებს აქვთ მრავალხაზიანი სათაურები, "
"იმპორტირებისას ერთ ხაზზე მეტი გამოტოვებული იქნება."
#. openerp-web
#: addons/web/static/src/xml/base.xml:1803
msgid "The import failed due to:"
msgstr ""
msgstr "იმპორტი ვერ შესრულდა ამ მიზეზით:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1805
msgid "Here is a preview of the file we could not import:"
msgstr ""
msgstr "იმ ფაილის წინასწარი ხედი, რომლის იმპორტირებაც ვერ მოხერხდა:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1812
@ -1515,27 +1526,27 @@ msgstr "ვერსია"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1815
msgid "Copyright © 2004-TODAY OpenERP SA. All Rights Reserved."
msgstr ""
msgstr "საავტორო უფლება © 2004-TODAY OpenERP SA. ყველა უფლება დაცულია."
#. openerp-web
#: addons/web/static/src/xml/base.xml:1816
msgid "OpenERP is a trademark of the"
msgstr ""
msgstr "OpenERP სავაჭრო ნიშანი გახლავთ"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1817
msgid "OpenERP SA Company"
msgstr ""
msgstr "OpenERP SA Company"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1819
msgid "Licenced under the terms of"
msgstr ""
msgstr "ლიცენზირებულია პირობების დაცვით"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1820
msgid "GNU Affero General Public License"
msgstr ""
msgstr "GNU Affero საყოველთაო საჯარო ლიცენზია"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1822
@ -1545,4 +1556,4 @@ msgstr "მეტი ინფორმაციისთვის ეწვი
#. openerp-web
#: addons/web/static/src/xml/base.xml:1823
msgid "OpenERP.com"
msgstr ""
msgstr "OpenERP.com"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172
@ -53,7 +53,7 @@ msgstr "Өгөгдлийн сангийн буруу нэр"
#. openerp-web
#: addons/web/static/src/js/chrome.js:483
msgid "Backed"
msgstr ""
msgstr "Нөөцлөгдсөн"
#. openerp-web
#: addons/web/static/src/js/chrome.js:484
@ -80,7 +80,7 @@ msgstr "Тухай"
#: addons/web/static/src/js/chrome.js:787
#: addons/web/static/src/xml/base.xml:356
msgid "Preferences"
msgstr ""
msgstr "Тохируулга"
#. openerp-web
#: addons/web/static/src/js/chrome.js:790
@ -97,12 +97,12 @@ msgstr ""
#: addons/web/static/src/js/search.js:293
#: addons/web/static/src/js/view_form.js:1234
msgid "Cancel"
msgstr ""
msgstr "Цуцлах"
#. openerp-web
#: addons/web/static/src/js/chrome.js:791
msgid "Change password"
msgstr ""
msgstr "Нууц үг солих"
#. openerp-web
#: addons/web/static/src/js/chrome.js:792
@ -112,14 +112,14 @@ msgstr ""
#: addons/web/static/src/xml/base.xml:1500
#: addons/web/static/src/xml/base.xml:1514
msgid "Save"
msgstr ""
msgstr "Хадгалах"
#. openerp-web
#: addons/web/static/src/js/chrome.js:811
#: addons/web/static/src/xml/base.xml:226
#: addons/web/static/src/xml/base.xml:1729
msgid "Change Password"
msgstr ""
msgstr "Нууц үг солих"
#. openerp-web
#: addons/web/static/src/js/chrome.js:1096

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-14 15:27+0100\n"
"PO-Revision-Date: 2012-05-15 14:32+0000\n"
"PO-Revision-Date: 2012-06-04 14:18+0000\n"
"Last-Translator: Els Van Vossel (Agaplan) <Unknown>\n"
"Language-Team: Dutch (Belgium) <nl_BE@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: 2012-05-16 05:10+0000\n"
"X-Generator: Launchpad (build 15247)\n"
"X-Launchpad-Export-Date: 2012-06-05 05:07+0000\n"
"X-Generator: Launchpad (build 15353)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172
@ -1330,7 +1330,7 @@ msgstr "Voorwaarde toevoegen"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1436
msgid "and"
msgstr ""
msgstr "en"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1503
@ -1441,7 +1441,7 @@ msgstr "CSV Bestand:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1750
msgid "2. Check your file format"
msgstr ""
msgstr "2. Controleer uw bestandsformaat"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1753

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172
@ -27,12 +27,12 @@ msgstr ""
#: addons/web/static/src/js/view_form.js:424
#: addons/web/static/src/js/view_form.js:1239
msgid "Ok"
msgstr "OK"
msgstr "V redu"
#. openerp-web
#: addons/web/static/src/js/chrome.js:180
msgid "Send OpenERP Enterprise Report"
msgstr ""
msgstr "Pošlji OpenERP poročilo"
#. openerp-web
#: addons/web/static/src/js/chrome.js:194
@ -53,7 +53,7 @@ msgstr "Napačno ime podatkovne zbirke"
#. openerp-web
#: addons/web/static/src/js/chrome.js:483
msgid "Backed"
msgstr ""
msgstr "Zaščiteno"
#. openerp-web
#: addons/web/static/src/js/chrome.js:484
@ -159,12 +159,12 @@ msgstr "Izvozi v Datoteko"
#. openerp-web
#: addons/web/static/src/js/data_export.js:125
msgid "Please enter save field list name"
msgstr ""
msgstr "Prosimo, vnesite ime datoteke za varnostno kopiranje"
#. openerp-web
#: addons/web/static/src/js/data_export.js:360
msgid "Please select fields to save export list..."
msgstr ""
msgstr "Izberite polja, ki se hranijo na seznamu izvoza"
#. openerp-web
#: addons/web/static/src/js/data_export.js:373
@ -204,7 +204,7 @@ msgstr "Prenos \"%s\""
#. openerp-web
#: addons/web/static/src/js/search.js:191
msgid "Filter disabled due to invalid syntax"
msgstr ""
msgstr "Filter je onemogočen zaradi napačne sintakse"
#. openerp-web
#: addons/web/static/src/js/search.js:237
@ -384,13 +384,13 @@ msgstr "ni"
#: addons/web/static/src/js/search.js:1396
#: addons/web/static/src/js/search.js:1401
msgid "is true"
msgstr ""
msgstr "pravilno"
#. openerp-web
#: addons/web/static/src/js/search.js:1397
#: addons/web/static/src/js/search.js:1402
msgid "is false"
msgstr ""
msgstr "napačno"
#. openerp-web
#: addons/web/static/src/js/view_editor.js:20
@ -429,13 +429,13 @@ msgstr "Ustvari pogled (%s)"
#. openerp-web
#: addons/web/static/src/js/view_editor.js:168
msgid "Do you really want to remove this view?"
msgstr ""
msgstr "Res želite odstraniti ta pogled ?"
#. openerp-web
#: addons/web/static/src/js/view_editor.js:364
#, python-format
msgid "View Editor %d - %s"
msgstr ""
msgstr "Urejevalnik pogleda %d - %s"
#. openerp-web
#: addons/web/static/src/js/view_editor.js:367
@ -445,7 +445,7 @@ msgstr "Podedovan pogled"
#. openerp-web
#: addons/web/static/src/js/view_editor.js:371
msgid "Do you really wants to create an inherited view here?"
msgstr ""
msgstr "Ali res želite ustvariti podeodvan pogled tukaj?"
#. openerp-web
#: addons/web/static/src/js/view_editor.js:381
@ -455,7 +455,7 @@ msgstr "Predogled"
#. openerp-web
#: addons/web/static/src/js/view_editor.js:501
msgid "Do you really want to remove this node?"
msgstr ""
msgstr "Ali res želite izbrisati to vozlišče?"
#. openerp-web
#: addons/web/static/src/js/view_editor.js:815
@ -467,25 +467,25 @@ msgstr "Lastnosti"
#: addons/web/static/src/js/view_editor.js:818
#: addons/web/static/src/js/view_editor.js:942
msgid "Update"
msgstr ""
msgstr "Posodobi"
#. openerp-web
#: addons/web/static/src/js/view_form.js:16
msgid "Form"
msgstr ""
msgstr "Forma"
#. openerp-web
#: addons/web/static/src/js/view_form.js:121
#: addons/web/static/src/js/views.js:803
msgid "Customize"
msgstr ""
msgstr "Prilagodi"
#. openerp-web
#: addons/web/static/src/js/view_form.js:123
#: addons/web/static/src/js/view_form.js:686
#: addons/web/static/src/js/view_form.js:692
msgid "Set Default"
msgstr ""
msgstr "Nastavi kot privzeto"
#. openerp-web
#: addons/web/static/src/js/view_form.js:469
@ -499,20 +499,20 @@ msgstr ""
#: addons/web/static/src/js/view_form.js:693
#: addons/web/static/src/js/view_form.js:699
msgid "Save default"
msgstr ""
msgstr "Shrani privzeto"
#. openerp-web
#: addons/web/static/src/js/view_form.js:754
#: addons/web/static/src/js/view_form.js:760
msgid "Attachments"
msgstr ""
msgstr "Priloge"
#. openerp-web
#: addons/web/static/src/js/view_form.js:792
#: addons/web/static/src/js/view_form.js:798
#, python-format
msgid "Do you really want to delete the attachment %s?"
msgstr ""
msgstr "Res želite odstraniti prilogo %s?"
#. openerp-web
#: addons/web/static/src/js/view_form.js:822
@ -539,7 +539,7 @@ msgstr ""
#: addons/web/static/src/js/view_form.js:1225
#: addons/web/static/src/js/view_form.js:1231
msgid "Confirm"
msgstr ""
msgstr "Potrdi"
#. openerp-web
#: addons/web/static/src/js/view_form.js:1921
@ -549,7 +549,7 @@ msgstr ""
#: addons/web/static/src/js/view_form.js:2590
#: addons/web/static/src/js/view_form.js:2760
msgid "Open: "
msgstr ""
msgstr "Odpri: "
#. openerp-web
#: addons/web/static/src/js/view_form.js:2049
@ -575,7 +575,7 @@ msgstr "<em>   Ustvari in uredi...</em>"
#: addons/web/static/src/js/views.js:675
#: addons/web/static/src/js/view_form.js:2113
msgid "Search: "
msgstr ""
msgstr "Iskanje: "
#. openerp-web
#: addons/web/static/src/js/view_form.js:2101
@ -583,7 +583,7 @@ msgstr ""
#: addons/web/static/src/js/view_form.js:2113
#: addons/web/static/src/js/view_form.js:2562
msgid "Create: "
msgstr ""
msgstr "Ustvari: "
#. openerp-web
#: addons/web/static/src/js/view_form.js:2661
@ -598,17 +598,17 @@ msgstr "Dodaj"
#: addons/web/static/src/js/view_form.js:2721
#: addons/web/static/src/js/view_form.js:2740
msgid "Add: "
msgstr ""
msgstr "Dodaj: "
#. openerp-web
#: addons/web/static/src/js/view_list.js:8
msgid "List"
msgstr ""
msgstr "Seznam"
#. openerp-web
#: addons/web/static/src/js/view_list.js:269
msgid "Unlimited"
msgstr ""
msgstr "Neomejeno"
#. openerp-web
#: addons/web/static/src/js/view_list.js:305
@ -627,7 +627,7 @@ msgstr ""
#: addons/web/static/src/js/view_list.js:1230
#: addons/web/static/src/js/view_list.js:1232
msgid "Undefined"
msgstr ""
msgstr "Nedoločeno"
#. openerp-web
#: addons/web/static/src/js/view_list.js:1327
@ -639,17 +639,17 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/js/view_page.js:8
msgid "Page"
msgstr ""
msgstr "Stran"
#. openerp-web
#: addons/web/static/src/js/view_page.js:52
msgid "Do you really want to delete this record?"
msgstr ""
msgstr "Ali res želite izbrisati ta zapis?"
#. openerp-web
#: addons/web/static/src/js/view_tree.js:11
msgid "Tree"
msgstr ""
msgstr "Drevo"
#. openerp-web
#: addons/web/static/src/js/views.js:565
@ -673,7 +673,7 @@ msgstr ""
#: addons/web/static/src/js/views.js:610
#: addons/web/static/src/xml/base.xml:482
msgid "Manage Views"
msgstr ""
msgstr "Urejanje pogledov"
#. openerp-web
#: addons/web/static/src/js/views.js:611
@ -683,17 +683,17 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/js/views.js:805
msgid "Translate"
msgstr ""
msgstr "Prevedi"
#. openerp-web
#: addons/web/static/src/js/views.js:807
msgid "Technical translation"
msgstr ""
msgstr "Tehnični prevod"
#. openerp-web
#: addons/web/static/src/js/views.js:811
msgid "Other Options"
msgstr ""
msgstr "Druge možnosti"
#. openerp-web
#: addons/web/static/src/js/views.js:814
@ -710,17 +710,17 @@ msgstr "Izvozi"
#. openerp-web
#: addons/web/static/src/js/views.js:825
msgid "Reports"
msgstr ""
msgstr "Poročila"
#. openerp-web
#: addons/web/static/src/js/views.js:825
msgid "Actions"
msgstr ""
msgstr "Dejanja"
#. openerp-web
#: addons/web/static/src/js/views.js:825
msgid "Links"
msgstr ""
msgstr "Povezave"
#. openerp-web
#: addons/web/static/src/js/views.js:919
@ -869,7 +869,7 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:251
msgid "OpenERP Entreprise"
msgstr ""
msgstr "OpenERP Entreprise"
#. openerp-web
#: addons/web/static/src/xml/base.xml:256
@ -884,12 +884,12 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:259
msgid "Summary:"
msgstr ""
msgstr "Povzetek:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:263
msgid "Description:"
msgstr ""
msgstr "Opis:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:267
@ -899,12 +899,12 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:297
msgid "Invalid username or password"
msgstr ""
msgstr "Neveljavno uporabniško ime ali geslo"
#. openerp-web
#: addons/web/static/src/xml/base.xml:306
msgid "Username"
msgstr ""
msgstr "Uporabniško ime"
#. openerp-web
#: addons/web/static/src/xml/base.xml:308
@ -915,7 +915,7 @@ msgstr "Geslo"
#. openerp-web
#: addons/web/static/src/xml/base.xml:310
msgid "Log in"
msgstr ""
msgstr "Prijava"
#. openerp-web
#: addons/web/static/src/xml/base.xml:314
@ -930,7 +930,7 @@ msgstr "Nazaj na prijavo"
#. openerp-web
#: addons/web/static/src/xml/base.xml:353
msgid "Home"
msgstr ""
msgstr "Domov"
#. openerp-web
#: addons/web/static/src/xml/base.xml:363
@ -960,12 +960,12 @@ msgstr "Onemogoči vse namige"
#. openerp-web
#: addons/web/static/src/xml/base.xml:463
msgid "Add / Remove Shortcut..."
msgstr ""
msgstr "Dodaj / Odstrani bližnjico..."
#. openerp-web
#: addons/web/static/src/xml/base.xml:471
msgid "More…"
msgstr ""
msgstr "Več..."
#. openerp-web
#: addons/web/static/src/xml/base.xml:477
@ -985,7 +985,7 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:483
msgid "View"
msgstr ""
msgstr "Pogled"
#. openerp-web
#: addons/web/static/src/xml/base.xml:484
@ -995,22 +995,22 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:485
msgid "Edit Action"
msgstr ""
msgstr "Uredi dejanje"
#. openerp-web
#: addons/web/static/src/xml/base.xml:486
msgid "Edit Workflow"
msgstr ""
msgstr "Uredi delovni proces"
#. openerp-web
#: addons/web/static/src/xml/base.xml:491
msgid "ID:"
msgstr ""
msgstr "ID:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:494
msgid "XML ID:"
msgstr ""
msgstr "XML ID:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:497
@ -1052,27 +1052,27 @@ msgstr "Podvoji"
#. openerp-web
#: addons/web/static/src/xml/base.xml:775
msgid "Add attachment"
msgstr ""
msgstr "Dodaj priponko"
#. openerp-web
#: addons/web/static/src/xml/base.xml:801
msgid "Default:"
msgstr ""
msgstr "Privzeto:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:818
msgid "Condition:"
msgstr ""
msgstr "Pogoj:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:837
msgid "Only you"
msgstr ""
msgstr "Samo vi"
#. openerp-web
#: addons/web/static/src/xml/base.xml:844
msgid "All users"
msgstr ""
msgstr "Vsi uporabniki"
#. openerp-web
#: addons/web/static/src/xml/base.xml:851
@ -1098,37 +1098,37 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:936
msgid "Field:"
msgstr ""
msgstr "Polje:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:940
msgid "Object:"
msgstr ""
msgstr "Objekt:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:944
msgid "Type:"
msgstr ""
msgstr "Vrsta:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:948
msgid "Widget:"
msgstr ""
msgstr "Čarovnik:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:952
msgid "Size:"
msgstr ""
msgstr "Velikost:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:956
msgid "Context:"
msgstr ""
msgstr "Vsebina:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:960
msgid "Domain:"
msgstr ""
msgstr "Domena:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:968
@ -1148,17 +1148,17 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:980
msgid "Selection:"
msgstr ""
msgstr "Izbor:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1020
msgid "Send an e-mail with your default e-mail client"
msgstr ""
msgstr "Pošljite e-pošto z vašim privzetim e-poštnim odjemalcem"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1034
msgid "Open this resource"
msgstr ""
msgstr "Odpri vir"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1056
@ -1189,7 +1189,7 @@ msgstr "..."
#: addons/web/static/src/xml/base.xml:1155
#: addons/web/static/src/xml/base.xml:1198
msgid "Set Image"
msgstr ""
msgstr "Nastavi sliko"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1163
@ -1220,7 +1220,7 @@ msgstr "Shrani kot"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1238
msgid "Button"
msgstr ""
msgstr "Gumb"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1241
@ -1240,7 +1240,7 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:1257
msgid "Method:"
msgstr ""
msgstr "Metoda:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1261
@ -1250,12 +1250,12 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:1271
msgid "Search"
msgstr ""
msgstr "Iskanje"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1279
msgid "Filters"
msgstr ""
msgstr "Filtri"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1280
@ -1549,4 +1549,4 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:1823
msgid "OpenERP.com"
msgstr ""
msgstr "OpenERP.com"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:05+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -1,4 +1,4 @@
@charset "UTF-8";
@charset "utf-8";
@font-face {
font-family: "mnmliconsRegular";
src: url("/web/static/src/font/mnmliconsv21-webfont.eot") format("eot");
@ -148,7 +148,7 @@
border: 1px solid #ababab;
color: #404040;
margin: 0;
padding: 4px 12px;
padding: 3px 12px;
font-size: 13px;
text-align: center;
background-color: #efefef;
@ -1129,7 +1129,7 @@
left: 0px;
padding: 8px;
border: 1px solid #afafb6;
width: 120px;
min-width: 120px;
overflow-x: hidden;
z-index: 900;
text-align: left;
@ -1575,7 +1575,8 @@
.openerp .oe_form_button_save_dirty:hover {
background: #ed6f6a;
}
.openerp .oe_form_topbar {
.openerp .oe_form header {
position: relative;
border-bottom: 1px solid #cacaca;
background-color: #fcfcfc;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
@ -1587,19 +1588,20 @@
padding: 0 8px;
line-height: 30px;
}
.openerp .oe_form_topbar button {
.openerp .oe_form header button {
font-size: 12px;
float: left;
height: 24px !important;
line-height: 24px;
vertical-align: top;
padding: 0 10px;
margin: 3px 4px 3px 0;
}
.openerp .oe_form_topbar button span.i {
.openerp .oe_form header button span.i {
line-height: 20px;
height: 24px;
}
.openerp .oe_form_topbar ul {
.openerp .oe_form header ul {
height: 30px;
padding: 0;
margin: 0;
@ -1607,7 +1609,7 @@
border-left: 1px solid #cacaca;
border-right: 1px solid #cacaca;
}
.openerp .oe_form_topbar ul li {
.openerp .oe_form header ul li {
padding: 0;
margin: 0;
float: left;
@ -1616,35 +1618,39 @@
height: 30px;
padding: 0 12px;
}
.openerp .oe_form_topbar ul li:first-child {
.openerp .oe_form header ul li:first-child {
border-left: 1px solid #cacaca;
}
.openerp .oe_form_topbar ul li a {
.openerp .oe_form header ul li a {
color: #4c4c4c;
}
.openerp .oe_form_topbar ul li a:hover {
.openerp .oe_form header ul li a:hover {
color: black;
}
.openerp .oe_form_topbar .oe_form_steps img {
.openerp .oe_form header .oe_form_steps {
display: inline-block;
float: right;
}
.openerp .oe_form header .oe_form_steps img {
margin: 0 8px;
vertical-align: top;
}
.openerp .oe_form_topbar .oe_form_steps li {
.openerp .oe_form header .oe_form_steps li {
border-right: none;
padding: 0;
}
.openerp .oe_form_topbar .oe_form_steps li:first-child {
.openerp .oe_form header .oe_form_steps li:first-child {
margin-left: 12px;
border-left: none;
}
.openerp .oe_form_topbar .oe_form_steps li:last-child {
.openerp .oe_form header .oe_form_steps li:last-child {
margin-right: 12px;
}
.openerp .oe_form_topbar .oe_form_steps_active {
.openerp .oe_form header .oe_form_steps_active {
font-weight: bold;
color: #b33630;
}
.openerp .oe_form_topbar.oe_form_topbar_hifirst button:first-child, .openerp button.oe_form_button_hi {
.openerp .oe_form_readonly button.oe_form_button_hi {
color: white;
background: #dc5f59;
background: -moz-linear-gradient(#dc5f59, #b33630);
@ -1654,7 +1660,7 @@
-webkit-box-shadow: none;
-box-shadow: none;
}
.openerp .oe_form_topbar.oe_form_topbar_hifirst button:first-child:hover, .openerp button.oe_form_button_hi:hover {
.openerp .oe_form_readonly button.oe_form_button_hi:hover {
background: #df6b66;
background: -moz-linear-gradient(#df6b66, #bf3a33);
background: -webkit-gradient(linear, left top, left bottom, from(#df6b66), to(#bf3a33));
@ -1668,41 +1674,57 @@
padding: 8px 0;
border-bottom: 1px solid #dddddd;
}
.openerp .oe_application .oe_form_sheet_width, .openerp .oe_application .oe_form_bottom {
.openerp .oe_application .oe_form_sheet_width, .openerp .oe_application footer {
min-width: 650px;
max-width: 980px;
max-width: 960px;
margin: 0 auto;
}
.openerp .oe_application .oe_form_sheet {
padding: 8px 8px 8px 8px;
padding: 18px;
background: white;
min-height: 420px;
min-height: 330px;
border: 1px solid #afafb6;
-moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}
.openerp .oe_form .oe_form_group_cell {
line-height: 18px;
padding: 2px;
height: 20px;
.openerp .oe_form_invisible {
display: none;
}
.openerp .oe_form .oe_form_group_cell > .oe_form_field_many2one,
.openerp .oe_form .oe_form_group_cell > .oe_form_field_many2one input,
.openerp .oe_form .oe_form_group_cell > .oe_form_field_char input,
.openerp .oe_form .oe_form_group_cell > .oe_form_field_text textarea,
.openerp .oe_form .oe_form_group_cell > .oe_form_field_email,
.openerp .oe_form .oe_form_group_cell > .oe_form_field_email input,
.openerp .oe_form .oe_form_group_cell > .oe_form_field_url,
.openerp .oe_form .oe_form_group_cell > .oe_form_field_url input,
.openerp .oe_form .oe_form_group_cell > .oe_form_field_float input,
.openerp .oe_form .oe_form_group_cell > .oe_form_field_selection select,
.openerp .oe_form .oe_form_group_cell > div > .oe_datepicker_root,
.openerp .oe_form .oe_form_group_cell > div > .oe_datepicker_root > input.oe_datepicker_master {
.openerp .oe_form_editable .oe_form_editable_hidden {
display: none;
}
.openerp .oe_form_readonly .oe_form_readonly_hidden, .openerp .oe_form_readonly .oe_form_field:empty {
display: none;
}
.openerp .oe_form .oe_form_field_text {
width: 100%;
}
.openerp .oe_form .oe_form_group_cell.oe_form_group_nested {
padding: 0;
.openerp .oe_form .oe_form_field_char input,
.openerp .oe_form .oe_form_field_text textarea,
.openerp .oe_form .oe_form_field_url input,
.openerp .oe_form .oe_form_field_selection select {
width: inherit;
}
.openerp .oe_form .oe_form_field_float input {
width: 100px;
}
.openerp .oe_form h1 .oe_form_field_float input {
width: 140px;
}
.openerp .oe_form h2 .oe_form_field_float input {
width: 120px;
}
.openerp .oe_form h1, .openerp .oe_form h2, .openerp .oe_form h3, .openerp .oe_form h4, .openerp .oe_form h5, .openerp .oe_form h6 {
margin: 0 0 4px 0;
}
.openerp .oe_form h1 input, .openerp .oe_form h2 input, .openerp .oe_form h3 input, .openerp .oe_form h4 input, .openerp .oe_form h5 input, .openerp .oe_form h6 input {
height: inherit !important;
font-size: inherit;
}
.openerp .oe_form_nosheet > *:not(.oe_form_topbar) {
margin-left: 10px !important;
margin-right: 10px !important;
}
.openerp .oe_form .oe_form_label_help[for], .openerp .oe_form .oe_form_label[for] {
font-weight: bold;
@ -1717,9 +1739,33 @@
top: -4px;
padding: 0 2px;
}
.openerp .oe_form textarea {
.openerp .oe_form .oe_form_field_text textarea {
resize: vertical;
}
.openerp .oe_form .oe_form_field {
width: 100%;
display: inline-block;
padding: 2px 2px 2px 0px;
line-height: 18px;
}
.openerp .oe_form .oe_form_field input {
margin: 0px;
}
.openerp .oe_form .oe_form_field_integer {
width: 180px;
}
.openerp .oe_form .oe_form_field_float {
width: 180px;
}
.openerp .oe_form .oe_form_field_date {
width: 7em;
}
.openerp .oe_form .oe_form_field_datetime {
width: 11em;
}
.openerp .oe_form .oe_form_inline {
width: auto;
}
.openerp .oe_form input[type="text"],
.openerp .oe_form input[type="password"],
.openerp .oe_form input[type="file"],
@ -1737,7 +1783,6 @@
-ms-box-sizing: border-box;
box-sizing: border-box;
padding: 0 2px;
margin: 0 2px;
border: 1px solid #999999;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
@ -1789,9 +1834,6 @@
.openerp .oe_form .oe_form_field_boolean {
padding-top: 4px;
}
.openerp .oe_form .oe_form_field_datetime input {
min-width: 11em;
}
.openerp .oe_form .oe_form_field_many2manytags .text-wrap {
width: 100% !important;
}
@ -1808,7 +1850,6 @@
color: black;
padding: 0px 3px 0px 3px;
margin: 0 2px 2px 0;
cursor: pointer;
height: 16px;
font: 11px "lucida grande", tahoma, verdana, arial, sans-serif;
}
@ -1829,17 +1870,6 @@
background-color: #ff6666 !important;
border: 1px solid #dd0000 !important;
}
.openerp .oe_form .oe_button.oe_field_button {
display: block;
-webkit-border-top-left-radius: 0px;
-webkit-border-bottom-left-radius: 0px;
-moz-border-radius-topleft: 0px;
-moz-border-radius-bottomleft: 0px;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
margin-right: -1px;
height: 22px;
}
.openerp .oe_form .oe_input_icon {
cursor: pointer;
margin: 3px 0 0 -21px;
@ -1856,9 +1886,46 @@
.openerp .oe_form .oe_form_group_cell .oe_kanban_view {
position: static;
}
.openerp .oe_form .oe_form_field_with_button input {
width: 100%;
}
.openerp .oe_form .oe_form_field_with_button > .oe_button {
float: right;
-webkit-border-top-left-radius: 0px;
-webkit-border-bottom-left-radius: 0px;
-moz-border-radius-topleft: 0px;
-moz-border-radius-bottomleft: 0px;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
height: 22px;
}
.openerp .oe_form .oe_form_field_with_button > div {
position: relative;
overflow: hidden;
}
.openerp .oe_form .oe_form_title {
width: 55%;
}
.openerp .oe_form .oe_form_title:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.openerp .oe_form .oe_form_button_box {
width: 200px;
text-align: center;
}
.openerp .oe_form .oe_form_group {
margin: 5px 0px 5px 0px;
}
.openerp .oe_form .oe_form_group_cell .oe_kanban_view {
position: static;
}
.openerp .oe_form .oe_form_button.oe_button {
height: 22px;
color: #4c4c4c;
white-space: nowrap;
}
.openerp .oe_form .oe_form_button.oe_button span {
position: relative;
@ -1868,15 +1935,10 @@
vertical-align: -3px;
padding: 0 2px;
}
.openerp .oe_form .oe_form_group_cell > .oe_form_button.oe_button {
display: block;
white-space: nowrap;
min-width: 100%;
width: 100%;
}
.openerp .oe_form .oe-binary-file-set {
overflow: hidden;
position: relative;
display: inline-block;
width: 45px;
height: 30px;
}
@ -1893,6 +1955,36 @@
margin: 0;
padding: 0;
}
.openerp .oe_form .oe_form_field_image {
padding: 0;
position: relative;
display: inline-block;
width: auto;
vertical-align: top;
}
.openerp .oe_form .oe_form_field_image > img {
min-width: 100px;
}
.openerp .oe_form .oe_form_field_image .oe_form_field_image_controls {
position: absolute;
top: 1px;
padding: 3px 0 0 0;
margin: 0 1px;
filter: alpha(opacity=70);
opacity: 0.7;
width: 99%;
text-align: center;
background: url(/web/static/src/img/form_sheetbg.png);
border-bottom: 1px dotted black;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.openerp .oe_form .oe_form_field_image:hover .oe_form_field_image_controls {
filter: alpha(opacity=100);
opacity: 1;
}
.openerp .oe_horizontal_border {
border-bottom: 1px solid black;
}
@ -1962,9 +2054,16 @@
.openerp .oe_form_notebook_page {
padding: 0;
}
.openerp div.ui-tabs {
padding: 3px 0px 3px 0px;
}
.openerp .ui-tabs-hide {
display: none;
}
.openerp .oe_form .oe_form_field_progressbar {
display: inline-block;
min-width: 70px;
}
.openerp .oe_form .oe_form_field_progressbar.ui-progressbar {
height: 22px;
font-size: 10px;
@ -2005,46 +2104,40 @@
.openerp .oe-select-create-popup-view-form > .oe_formview > .oe_form_pager {
display: none;
}
.openerp .oe_form .oe_form_title, .openerp .oe_form .oe_form_title input {
font-size: 20px;
font-weight: bold;
height: 30px;
}
.openerp .oe_form .oe_form_group_odd_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell:nth-child(odd),
.openerp .oe_form .oe_form_group_label_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell_label {
.openerp .oe_form td.oe_form_group_cell_label {
border-right: 1px solid #dddddd;
padding: 2px 0px 2px 0px;
}
.openerp .oe_form .oe_form_group_odd_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell:nth-child(odd) label,
.openerp .oe_form .oe_form_group_label_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell_label label {
.openerp .oe_form td.oe_form_group_cell_label label {
line-height: 18px;
display: block;
min-width: 120px;
}
.openerp .oe_form .oe_form_group_odd_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell,
.openerp .oe_form .oe_form_group_label_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell {
.openerp .oe_form td.oe_form_group_cell + .oe_form_group_cell {
padding-left: 8px;
}
.openerp .oe_form .oe_form_subtotal_footer {
width: auto;
float: right;
}
.openerp .oe_form .oe_form_subtotal_footer > div {
.openerp .oe_form .oe_form_subtotal_footer td.oe_form_group_cell {
text-align: right;
padding: 3px;
padding: 0;
}
.openerp .oe_form .oe_form_subtotal_footer label {
font-weight: normal !important;
.openerp .oe_form .oe_form_subtotal_footer td.oe_form_group_cell_label {
border: none;
}
.openerp .oe_form .oe_form_subtotal_footer span {
display: inline-block;
min-width: 80px;
text-align: right;
.openerp .oe_form .oe_form_subtotal_footer .oe_form_field {
width: auto !important;
}
.openerp .oe_form .oe_form_subtotal_footer .oe_form_subtotal_footer_separator {
border-top: 1px solid #cacaca;
font-size: 120%;
font-weight: bold;
}
.openerp .oe_form .oe_form_subtotal_footer .oe_form_subtotal_footer_separator label {
.openerp .oe_form .oe_form_subtotal_footer label.oe_form_subtotal_footer_separator {
font-weight: bold !important;
padding: 2px 8px 2px 0px !important;
}
.openerp .oe-listview-content {
width: 100%;
@ -2121,7 +2214,7 @@
.openerp .oe-listview-content > tbody > tr > td.oe_list_checkbox:first-child:after, .openerp .oe-listview-content > tbody > tr th.oe_list_checkbox:first-child:after {
border-width: 0;
}
.openerp .oe-listview-content > tbody > tr > td.oe-number {
.openerp .oe-listview-content > tbody > tr > td.oe_number {
text-align: right !important;
}
.openerp .oe-listview-content > tbody > tr:nth-child(odd) {
@ -2221,6 +2314,28 @@
color: #333333;
}
.openerp .oe_view_editor {
width: 100%;
border-collapse: collapse;
margin-left: -12px;
width: 100%;
background-color: white;
border-spacing: 0;
}
.openerp .oe_view_editor td {
text-align: center;
white-space: nowrap;
border: 1px solid #d8d8d8;
cursor: pointer;
font-size: 90%;
}
.openerp .oe_view_editor_field td {
border: 0px !important;
}
.openerp .oe_view_editor tr:hover {
background-color: #ecebf2;
}
.kitten-mode-activated {
background-image: url(http://placekitten.com/g/1365/769);
background-size: cover;

View File

@ -181,7 +181,7 @@ $colour4: #8a89ba
border: 1px solid #ababab
color: #404040
margin: 0
padding: 4px 12px
padding: 3px 12px
font-size: 13px
text-align: center
@include vertical-gradient(#efefef, #d8d8d8)
@ -899,7 +899,7 @@ $colour4: #8a89ba
left: 0px
padding: 8px
border: 1px solid #afafb6
width: 120px
min-width: 120px
overflow-x: hidden
z-index: 900
text-align: left
@ -1252,13 +1252,15 @@ $colour4: #8a89ba
background: #ED6F6A
// }}}
// FormView.customdivs {{{
.oe_form_topbar
.oe_form header
position: relative
border-bottom: 1px solid #cacaca
@include vertical-gradient(#fcfcfc, #dedede)
padding: 0 8px
line-height: 30px
button
font-size: 12px
float: left
height: 24px !important
line-height: 24px
vertical-align: top
@ -1289,10 +1291,12 @@ $colour4: #8a89ba
&:hover
color: black
.oe_form_steps
img
display: inline-block
float: right
img
margin: 0 8px
vertical-align: top
li
li
border-right: none
padding: 0
&:first-child
@ -1303,60 +1307,76 @@ $colour4: #8a89ba
.oe_form_steps_active
font-weight: bold
color: #b33630
.oe_form_topbar.oe_form_topbar_hifirst button:first-child, button.oe_form_button_hi
color: white
background: #DC5F59
background: -moz-linear-gradient(#DC5F59, #B33630)
background: -webkit-gradient(linear, left top, left bottom, from(#DC5F59), to(#B33630))
background: -webkit-linear-gradient(#DC5F59, #B33630)
-moz-box-shadow: none
-webkit-box-shadow: none
-box-shadow: none
.oe_form_topbar.oe_form_topbar_hifirst button:first-child:hover, button.oe_form_button_hi:hover
background: #DF6B66
background: -moz-linear-gradient( #DF6B66, #BF3A33)
background: -webkit-gradient(linear, left top, left bottom, from( #DF6B66), to( #BF3A33))
background: -webkit-linear-gradient( #DF6B66, #BF3A33)
-moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2)
-webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2)
-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2)
.oe_form_readonly
button.oe_form_button_hi
color: white
background: #DC5F59
background: -moz-linear-gradient(#DC5F59, #B33630)
background: -webkit-gradient(linear, left top, left bottom, from(#DC5F59), to(#B33630))
background: -webkit-linear-gradient(#DC5F59, #B33630)
-moz-box-shadow: none
-webkit-box-shadow: none
-box-shadow: none
button.oe_form_button_hi:hover
background: #DF6B66
background: -moz-linear-gradient( #DF6B66, #BF3A33)
background: -webkit-gradient(linear, left top, left bottom, from( #DF6B66), to( #BF3A33))
background: -webkit-linear-gradient( #DF6B66, #BF3A33)
-moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2)
-webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2)
-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2)
.oe_application
.oe_form_sheetbg
background: url(/web/static/src/img/form_sheetbg.png)
padding: 8px 0
border-bottom: 1px solid #ddd
.oe_form_sheet_width, .oe_form_bottom
.oe_form_sheet_width, footer
min-width: 650px
max-width: 980px
max-width: 960px
margin: 0 auto
.oe_form_sheet
padding: 8px 8px 8px 8px
padding: 18px
background: white
min-height: 420px
min-height: 330px
border: 1px solid #afafb6
@include box-shadow(0 0 10px rgba(0,0,0,0.3))
// }}}
// FormView.layout {{{
.oe_form_invisible
display: none
.oe_form_editable .oe_form_editable_hidden
display: none
.oe_form_readonly
.oe_form_readonly_hidden, .oe_form_field:empty
display: none
.oe_form
.oe_form_group_cell
line-height: 18px
padding: 2px
height: 20px
.oe_form_group_cell > .oe_form_field_many2one,
.oe_form_group_cell > .oe_form_field_many2one input,
.oe_form_group_cell > .oe_form_field_char input,
.oe_form_group_cell > .oe_form_field_text textarea,
.oe_form_group_cell > .oe_form_field_email,
.oe_form_group_cell > .oe_form_field_email input,
.oe_form_group_cell > .oe_form_field_url,
.oe_form_group_cell > .oe_form_field_url input,
.oe_form_group_cell > .oe_form_field_float input,
.oe_form_group_cell > .oe_form_field_selection select,
.oe_form_group_cell > div > .oe_datepicker_root,
.oe_form_group_cell > div > .oe_datepicker_root > input.oe_datepicker_master
.oe_form_field_text
width: 100%
.oe_form_group_cell.oe_form_group_nested
padding: 0
.oe_form_field_char input,
.oe_form_field_text textarea,
.oe_form_field_url input,
.oe_form_field_selection select
width: inherit
.oe_form_field_float input
width: 100px
h1 .oe_form_field_float input
width: 140px
h2 .oe_form_field_float input
width: 120px
h1, h2, h3, h4, h5, h6
margin: 0 0 4px 0
input
height: inherit !important
font-size: inherit
.oe_form_nosheet > *:not(.oe_form_topbar)
margin-left: 10px !important
margin-right: 10px !important
// }}}
// FormView.label {{{
.oe_form
@ -1374,8 +1394,27 @@ $colour4: #8a89ba
// }}}
// FormView.fields {{{
.oe_form
textarea
.oe_form_field_text textarea
resize: vertical
.oe_form_field
width: 100%
display: inline-block
padding: 2px 2px 2px 0px
line-height: 18px
input
margin: 0px
.oe_form_field_integer
width: 180px
.oe_form_field_float
width: 180px
.oe_form_field_date
width: 7em
.oe_form_field_datetime
width: 11em
.oe_form_inline
width: auto
input[type="text"],
input[type="password"],
input[type="file"],
@ -1392,7 +1431,6 @@ $colour4: #8a89ba
-ms-box-sizing: border-box
box-sizing: border-box
padding: 0 2px
margin: 0 2px
border: 1px solid #999
-moz-border-radius: 3px
-webkit-border-radius: 3px
@ -1433,8 +1471,6 @@ $colour4: #8a89ba
white-space: nowrap
.oe_form_field_boolean
padding-top: 4px
.oe_form_field_datetime input
min-width: 11em
.oe_form_field_many2manytags
.text-wrap
width: 100% !important
@ -1450,7 +1486,6 @@ $colour4: #8a89ba
color: black
padding: 0px 3px 0px 3px
margin: 0 2px 2px 0
cursor: pointer
height: 16px
font: 11px "lucida grande", tahoma, verdana, arial, sans-serif
.text-core .text-wrap .text-dropdown .text-list .text-suggestion em
@ -1467,16 +1502,6 @@ $colour4: #8a89ba
input, select, textarea
background-color: #F66 !important
border: 1px solid #D00 !important
.oe_button.oe_field_button
display: block
-webkit-border-top-left-radius: 0px
-webkit-border-bottom-left-radius: 0px
-moz-border-radius-topleft: 0px
-moz-border-radius-bottomleft: 0px
border-top-left-radius: 0px
border-bottom-left-radius: 0px
margin-right: -1px
height: 22px
.oe_input_icon
cursor: pointer
margin: 3px 0 0 -21px
@ -1491,23 +1516,59 @@ $colour4: #8a89ba
.oe_form_group_cell .oe_kanban_view
// Hack due to absolute positioning of kanban view messing with o2m
position: static
.oe_form_field_with_button
input
width: 100%
> .oe_button
float: right
-webkit-border-top-left-radius: 0px
-webkit-border-bottom-left-radius: 0px
-moz-border-radius-topleft: 0px
-moz-border-radius-bottomleft: 0px
border-top-left-radius: 0px
border-bottom-left-radius: 0px
height: 22px
> div
position: relative
overflow: hidden
.oe_form_title
width: 55%
.oe_form_title:after
content: "."
display: block
height: 0
clear: both
visibility: hidden
.oe_form_button_box
width: 200px
text-align: center
.oe_form_group
margin: 5px 0px 5px 0px
.oe_form_group_cell .oe_kanban_view
// Hack due to absolute positioning of kanban view messing with o2m
position: static
// }}}
// FormView.buttons {{{
.oe_form
.oe_form_button.oe_button
height: 22px
color: #4c4c4c
white-space: nowrap
span
position: relative
vertical-align: top
.oe_form_button > img
vertical-align: -3px
padding: 0 2px
.oe_form_group_cell > .oe_form_button.oe_button
display: block
white-space: nowrap
min-width: 100%
width: 100%
// From FP: .oe_form_group_cell > .oe_form_button.oe_button
// From FP: display: block
// From FP: white-space: nowrap
// From FP: min-width: 100%
// From FP: width: 100%
// }}}
// FormView.binaryfile {{{
/* http://www.quirksmode.org/dom/inputfile.html
@ -1517,6 +1578,7 @@ $colour4: #8a89ba
.oe-binary-file-set
overflow: hidden
position: relative
display: inline-block
width: 45px
height: 30px
input.oe-binary-file
@ -1532,6 +1594,30 @@ $colour4: #8a89ba
-ms-filter: "alpha(opacity=0)"
margin: 0
padding: 0
.oe_form_field_image
> img
min-width: 100px
padding: 0
position: relative
display: inline-block
width: auto
vertical-align: top
.oe_form_field_image_controls
position: absolute
top: 1px
padding: 3px 0 0 0
margin: 0 1px
@include opacity(0.7)
width: 99%
text-align: center
background: url(/web/static/src/img/form_sheetbg.png)
border-bottom: 1px dotted black
-moz-box-sizing: border-box
-webkit-box-sizing: border-box
-ms-box-sizing: border-box
box-sizing: border-box
&:hover .oe_form_field_image_controls
@include opacity(1)
// }}}
// FormView.separator {{{
.oe_horizontal_border
@ -1588,12 +1674,17 @@ $colour4: #8a89ba
cursor: default
.oe_form_notebook_page
padding: 0
div.ui-tabs
padding: 3px 0px 3px 0px
.ui-tabs-hide
display: none
// }}}
// FormView.progressbar {{{
.oe_form
.oe_form_field_progressbar
display: inline-block
min-width: 70px
.oe_form_field_progressbar.ui-progressbar
height: 22px
font-size: 10px
@ -1636,36 +1727,32 @@ $colour4: #8a89ba
// }}}
// FormView.classes for openerp views {{{
.oe_form
.oe_form_title, .oe_form_title input
font-size: 20px
font-weight: bold
height: 30px
.oe_form_group_odd_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell:nth-child(odd),
.oe_form_group_label_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell_label
td.oe_form_group_cell_label
border-right: 1px solid #ddd
padding: 2px 0px 2px 0px
label
line-height: 18px
display: block
min-width: 120px
.oe_form_group_odd_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell,
.oe_form_group_label_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell
td.oe_form_group_cell + .oe_form_group_cell
padding-left: 8px
.oe_form_subtotal_footer
width: auto
float: right
> div
text-align: right
padding: 3px
label
font-weight: normal !important
span
display: inline-block
min-width: 80px
td.oe_form_group_cell
text-align: right
padding: 0
td.oe_form_group_cell_label
border: none
.oe_form_field
width: auto !important
.oe_form_subtotal_footer_separator
border-top: 1px solid #cacaca
font-size: 120%
font-weight: bold
label
font-weight: bold !important
label.oe_form_subtotal_footer_separator
font-weight: bold !important
padding: 2px 8px 2px 0px !important
// }}}
// ListView {{{
.oe-listview-content
@ -1730,7 +1817,7 @@ $colour4: #8a89ba
width: 17px
&:after
border-width: 0
> td.oe-number
> td.oe_number
text-align: right !important
> tr:nth-child(odd)
background-color: #f0f0fa
@ -1806,6 +1893,25 @@ $colour4: #8a89ba
float: right
color: #333
// }}}
//view editor
.openerp
.oe_view_editor
width: 100%
border-collapse: collapse
margin-left: -12px
width: 100%
background-color: white
border-spacing: 0
td
text-align: center
white-space: nowrap
border: 1px solid #D8D8D8
cursor: pointer
font-size: 90%
.oe_view_editor_field td
border: 0px !important
.oe_view_editor tr:hover
background-color: #ecebf2
.kitten-mode-activated
background-image: url(http://placekitten.com/g/1365/769)

View File

@ -134,6 +134,9 @@ instance.web.format_value = function (value, descriptor, value_if_empty) {
case 'many2one':
// name_get value format
return value[1];
case 'one2many':
case 'many2many':
return _.str.sprintf(_t("(%d records)"), value.length);
case 'datetime':
if (typeof(value) == "string")
value = instance.web.auto_str_to_date(value);

View File

@ -52,10 +52,11 @@ instance.web.ViewEditor = instance.web.OldWidget.extend({
this.view_edit_dialog.on_close.add_last(function(){window.location.reload();});
this.main_view_id = this.parent.fields_view.view_id;
this.action_manager = new instance.web.ActionManager(this);
this.action_manager.appendTo(this.view_edit_dialog);
$.when(this.action_manager.do_action(action)).then(function() {
var viewmanager = self.action_manager.inner_viewmanager,
controller = viewmanager.views[viewmanager.active_view].controller;
self.action_manager.appendTo(self.view_edit_dialog.$element);
self.action_manager.renderElement(self.view_edit_dialog);
controller.on_loaded.add_last(function(){
$(controller.groups).bind({
'selected': function(e, ids, records) {
@ -630,11 +631,9 @@ instance.web.ViewEditor = instance.web.OldWidget.extend({
insert = _.intersection(_.flatten(temp_obj.att_list),_.uniq(check_list));
if (insert.length == _.uniq(check_list).length ) {return xml_child;}
});
xml_arch = QWeb.load_xml(arch.arch);
}
arch_to_pass = _.filter($(arch.arch), function (child) {
return child.nodeType == 1;
});
return self.do_save_xml(arch_to_pass[0], obj[0].child_id[0],obj[0].child_id, move_direct, update_values,arch);
return self.do_save_xml(xml_arch.documentElement, obj[0].child_id[0],obj[0].child_id, move_direct, update_values,arch);
},
get_object_by_id: function(id, one_object, result) {
var self = this;
@ -708,12 +707,12 @@ instance.web.ViewEditor = instance.web.OldWidget.extend({
case "After":
self.edit_xml_dialog.$element.
find("tr[id='viewedit-"+after_append+"']").after(clone);
$(arch1).after(update_values[0]);
$(arch1).after($(update_values[0]));
child_list.splice(index + 1, 0, object_xml);
break;
case "Before":
tr_click.before(clone);
$(arch1).before(update_values[0]);
$(arch1).before($(update_values[0]));
child_list.splice(index - 1, 0, object_xml);
break;
case "Inside":
@ -724,7 +723,7 @@ instance.web.ViewEditor = instance.web.OldWidget.extend({
self.do_parent_img_hide_show(this);
}));
}
$(arch1).append(update_values[0]);
$(arch1).append($(update_values[0]));
self.edit_xml_dialog.$element.
find("tr[id='viewedit-"+after_append+"']").after(clone);
obj.child_id.push(object_xml);
@ -841,6 +840,7 @@ instance.web.ViewEditor = instance.web.OldWidget.extend({
'string' : {'name':'string', 'string': 'String', 'type': 'char'},
'required' : {'name':'required', 'string': 'Required', 'type': 'boolean'},
'readonly' : {'name':'readonly', 'string': 'Readonly', 'type': 'boolean'},
'invisible' : {'name':'invisible', 'string': 'Invisible', 'type': 'boolean'},
'domain' : {'name':'domain', 'string': 'Domain', 'type': 'char'},
'context' : {'name':'context', 'string': 'Context', 'type': 'char'},
'limit' : {'name':'limit', 'string': 'Limit', 'type': 'float'},
@ -891,7 +891,7 @@ instance.web.ViewEditor = instance.web.OldWidget.extend({
var value = _.detect(arch_val[0]['att_list'],function(res) {
return res instanceof Array? _.include(res, widget.name): false;
});
value = value instanceof Array ? value[1] : value;
self.edit_node_dialog.$element.find('table[id=rec_table]').append('<tr><td align="right">' + widget.string + ':</td>' + type_widget.render() + '</tr>');
type_widget.start();
@ -983,14 +983,14 @@ instance.web.ViewEditor = instance.web.OldWidget.extend({
self.add_node_dialog.$element.find('#new_field').click(function() {
model_data = new instance.web.DataSetSearch(self,'ir.model', null, null);
model_data.read_slice([], {domain: [['model','=', self.model]]}).then(function(result) {
self.render_new_field(result[0].id);
self.render_new_field(result[0]);
});
});
},
render_new_field :function(id){
render_new_field :function( result ) {
var self = this;
var action = {
context: {'default_model_id': id, 'manual': true},
context: {'default_model_id': result.id, 'manual': true, 'module' : result.modules},
res_model: "ir.model.fields",
views: [[false, 'form']],
type: 'ir.actions.act_window',
@ -1007,7 +1007,7 @@ instance.web.ViewEditor = instance.web.OldWidget.extend({
});
controller.do_save.add_last(function(){
action_manager.destroy();
var value =controller.fields.name.value;
var value =controller.fields.name.get('value');
self.add_node_dialog.$element.find('select[id=field_value]').append($("<option selected></option>").attr("value",value).text(value));
_.detect(self.add_widget,function(widget){
widget.name == "field_value"? widget.selection.push(value): false;
@ -1136,12 +1136,12 @@ instance.web.ViewEditor.FieldFloat = instance.web.ViewEditor.FieldChar.extend({
});
var _PROPERTIES = {
'field' : ['name', 'string', 'required', 'readonly', 'domain', 'context', 'nolabel', 'completion',
'field' : ['name', 'string', 'required', 'readonly','invisible', 'domain', 'context', 'nolabel', 'completion',
'colspan', 'widget', 'eval', 'ref', 'on_change', 'attrs', 'groups'],
'form' : ['string', 'col', 'link'],
'notebook' : ['colspan', 'position', 'groups'],
'page' : ['string', 'states', 'attrs', 'groups'],
'group' : ['string', 'col', 'colspan', 'states', 'attrs', 'groups'],
'group' : ['string', 'col', 'colspan','invisible', 'states', 'attrs', 'groups'],
'image' : ['filename', 'width', 'height', 'groups'],
'separator' : ['string', 'colspan', 'groups'],
'label': ['string', 'align', 'colspan', 'groups'],

View File

@ -208,8 +208,9 @@ instance.web.FormView = instance.web.View.extend(_.extend({}, instance.web.form.
}
}
},
do_show: function () {
do_show: function (options) {
var self = this;
options = options || {};
if (this.sidebar) {
this.sidebar.$element.show();
}
@ -233,6 +234,9 @@ instance.web.FormView = instance.web.View.extend(_.extend({}, instance.web.form.
}).pipe(self.on_record_loaded);
}
result.pipe(function() {
if (options.editable) {
self.set({mode: "edit"});
}
self.$element.css('visibility', 'visible');
});
return result;
@ -495,7 +499,8 @@ instance.web.FormView = instance.web.View.extend(_.extend({}, instance.web.form.
this.on_form_changed();
}
if (!_.isEmpty(result.warning)) {
instance.web.dialog($(QWeb.render("CrashManagerWarning", result.warning)), {
instance.web.dialog($(QWeb.render("CrashManager.warning", result.warning)), {
title:result.warning.title,
modal: true,
buttons: [
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
@ -521,6 +526,7 @@ instance.web.FormView = instance.web.View.extend(_.extend({}, instance.web.form.
switch_mode: function() {
var self = this;
if(this.get("mode") == "view") {
self.$element.removeClass('oe_form_editable').addClass('oe_form_readonly');
self.$buttons.find('.oe_form_buttons_edit').hide();
self.$buttons.find('.oe_form_buttons_view').show();
self.$sidebar.show();
@ -528,6 +534,7 @@ instance.web.FormView = instance.web.View.extend(_.extend({}, instance.web.form.
field.set({"force_readonly": true});
});
} else {
self.$element.removeClass('oe_form_readonly').addClass('oe_form_editable');
self.$buttons.find('.oe_form_buttons_edit').show();
self.$buttons.find('.oe_form_buttons_view').hide();
self.$sidebar.hide();
@ -640,6 +647,9 @@ instance.web.FormView = instance.web.View.extend(_.extend({}, instance.web.form.
}
if (form_invalid) {
self.set({'display_invalid_fields': true});
for (var f in self.fields) {
self.fields[f]._check_css_flags();
}
first_invalid_field.focus();
self.on_invalid();
return $.Deferred().reject();
@ -919,9 +929,6 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
// but one day, we will have to get rid of xml2json
var xml = instance.web.json_node_to_xml(this.fvg.arch);
this.$form = $('<div class="oe_form">' + xml + '</div>');
if (this.fvg.arch.attrs && this.fvg.arch.attrs['layout'] !== 'manual') {
this.$form.attr('layout', 'auto');
}
this.fields_to_init = [];
this.tags_to_init = [];
@ -953,16 +960,13 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
var obj = self.tags_registry.get_object(tag_name);
var w = new (obj)(self.view, instance.web.xml_to_json($elem[0]));
w.replace($elem);
})
});
// TODO: return a deferred
},
render_element: function(template, layout/* dictionaries */) {
var dicts = [].slice.call(arguments).slice(2);
dicts.unshift({ 'layout' : layout });
render_element: function(template /* dictionaries */) {
var dicts = [].slice.call(arguments).slice(1);
var dict = _.extend.apply(_, dicts);
dict['classnames'] = dict['class'] || ''; // class is a reserved word and might caused problem to Safari when used from QWeb
var alt_template = template + '.' + layout;
template = QWeb.has_template(alt_template) ? alt_template : template;
return $(QWeb.render(template, dict));
},
alter_field: function(field) {
@ -977,10 +981,8 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
}
this.$target.toggleClass('oe_layout_debugging');
},
process: function($tag, layout) {
process: function($tag) {
var self = this;
layout = $tag.attr('layout') || layout || 'auto';
$tag.removeAttr('layout');
var tagname = $tag[0].nodeName.toLowerCase();
if (this.tags_registry.contains(tagname)) {
this.tags_to_init.push($tag);
@ -990,39 +992,45 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
if (fn) {
var args = [].slice.call(arguments);
args[0] = $tag;
args[1] = layout;
return fn.apply(self, args);
} else {
// generic tag handling, just process children
$tag.children().each(function() {
self.process($(this), layout);
self.process($(this));
});
self.handle_common_properties($tag, $tag);
$tag.removeAttr("modifiers");
return $tag;
}
},
process_sheet: function($sheet, layout) {
var $new_sheet = this.render_element('FormRenderingSheet', layout, $sheet.getAttributes());
process_sheet: function($sheet) {
var $new_sheet = this.render_element('FormRenderingSheet', $sheet.getAttributes());
this.handle_common_properties($new_sheet, $sheet);
var $dst = (layout === 'auto') ? $new_sheet.find('group:first') : $new_sheet.find('.oe_form_sheet');
$sheet.children().appendTo($dst);
var $dst = $new_sheet.find('.oe_form_sheet');
$sheet.contents().appendTo($dst);
$sheet.before($new_sheet).remove();
this.process($new_sheet, layout);
this.process($new_sheet);
},
process_form: function($form, layout) {
var $new_form = this.render_element('FormRenderingForm', layout, $form.getAttributes());
process_form: function($form) {
if ($form.find('> sheet').length === 0) {
$form.addClass('oe_form_nosheet');
}
var $new_form = this.render_element('FormRenderingForm', $form.getAttributes());
this.handle_common_properties($new_form, $form);
var $dst = (layout === 'auto') ? $new_form.find('group:first') : $new_form;
$form.children().appendTo($dst);
$form.contents().appendTo($new_form);
if ($form[0] === this.$form[0]) {
// If root element, replace it
this.$form = $new_form;
} else {
$form.before($new_form).remove();
}
this.process($new_form, layout);
this.process($new_form);
},
/*
* Used by direct <field> children of a <group> tag only
* This method will add the implicit <label...> for every field
* in the <group>
*/
preprocess_field: function($field) {
var self = this;
var name = $field.attr('name'),
@ -1048,6 +1056,7 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
"modifiers": JSON.stringify({invisible: field_modifiers.invisible}),
"string": $field.attr('string'),
"help": $field.attr('help'),
"class": $field.attr('class'),
});
$label.insertBefore($field);
if (field_colspan > 1) {
@ -1055,31 +1064,34 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
}
return $label;
},
process_field: function($field, layout) {
var $label = this.preprocess_field($field);
if ($label)
this.process($label, layout);
process_field: function($field) {
if ($field.parent().is('group')) {
// No implicit labels for normal fields, only for <group> direct children
var $label = this.preprocess_field($field);
if ($label) {
this.process($label);
}
}
this.fields_to_init.push($field);
return $field;
},
process_group: function($group, layout) {
process_group: function($group) {
var self = this;
if ($group.parent().is('.oe_form_group_cell')) {
$group.parent().addClass('oe_form_group_nested');
}
$group.children('field').each(function() {
self.preprocess_field($(this));
});
var $new_group = this.render_element('FormRenderingGroup', layout, $group.getAttributes()),
$table;
if ($new_group.is('table')) {
var $new_group = this.render_element('FormRenderingGroup', $group.getAttributes());
var $table;
if ($new_group.first().is('table.oe_form_group')) {
$table = $new_group;
} else if ($new_group.filter('table.oe_form_group').length) {
$table = $new_group.filter('table.oe_form_group').first();
} else {
$table = $new_group.find('table:first');
$table = $new_group.find('table.oe_form_group').first();
}
$table.addClass('oe_form_group');
var $tr, $td,
cols = parseInt($group.attr('col') || 4, 10),
cols = parseInt($group.attr('col') || 2, 10),
row_cols = cols;
var children = [];
@ -1089,6 +1101,8 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
var tagName = $child[0].tagName.toLowerCase();
var $td = $('<td/>').addClass('oe_form_group_cell').attr('colspan', colspan);
var newline = tagName === 'newline';
// Note FME: those classes are used in layout debug mode
if ($tr && row_cols > 0 && (newline || row_cols < colspan)) {
$tr.addClass('oe_form_group_row_incomplete');
if (newline) {
@ -1118,7 +1132,6 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
}
$group.before($new_group).remove();
// Now compute width of cells
$table.find('> tbody > tr').each(function() {
var to_compute = [],
row_cols = cols,
@ -1131,13 +1144,14 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
if ($child.attr('orientation') === 'vertical') {
$td.addClass('oe_vertical_separator').attr('width', '1');
$td.empty();
row_cols--;
row_cols-= $td.attr('colspan') || 1;
total--;
}
break;
case 'label':
if ($child.attr('for')) {
$td.attr('width', '1%').addClass('oe_form_group_cell_label');
row_cols--;
row_cols-= $td.attr('colspan') || 1;
total--;
}
break;
@ -1154,20 +1168,22 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
}
$td.attr('width', width);
$child.removeAttr('width');
row_cols--;
row_cols-= $td.attr('colspan') || 1;
} else {
to_compute.push($td);
}
}
});
var unit = Math.floor(total / row_cols);
if (!$(this).is('.oe_form_group_row_incomplete')) {
_.each(to_compute, function($td, i) {
var width = parseInt($td.attr('colspan'), 10) * unit;
$td.attr('width', ((i == to_compute.length - 1) ? total : width) + '%');
total -= width;
});
if (row_cols) {
var unit = Math.floor(total / row_cols);
if (!$(this).is('.oe_form_group_row_incomplete')) {
_.each(to_compute, function($td, i) {
var width = parseInt($td.attr('colspan'), 10) * unit;
$td.attr('width', width + '%');
total -= width;
});
}
}
});
_.each(children, function(el) {
@ -1176,37 +1192,57 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
this.handle_common_properties($new_group, $group);
return $new_group;
},
process_notebook: function($notebook, layout) {
process_notebook: function($notebook) {
var self = this;
var pages = [];
$notebook.find('> page').each(function() {
var $page = $(this);
var page_attrs = $page.getAttributes();
page_attrs.id = _.uniqueId('notebook_page_');
pages.push(page_attrs);
var $new_page = self.render_element('FormRenderingNotebookPage', layout, page_attrs);
var $dst = (layout === 'auto') ? $new_page.find('group:first') : $new_page;
$page.children().appendTo($dst);
var $new_page = self.render_element('FormRenderingNotebookPage', page_attrs);
$page.contents().appendTo($new_page);
$page.before($new_page).remove();
self.handle_common_properties($new_page, $page);
var ic = self.handle_common_properties($new_page, $page).invisibility_changer;
page_attrs.__page = $new_page;
page_attrs.__ic = ic;
pages.push(page_attrs);
$new_page.children().each(function() {
self.process($(this));
});
});
var $new_notebook = this.render_element('FormRenderingNotebook', layout, { pages : pages });
$notebook.children().appendTo($new_notebook);
var $new_notebook = this.render_element('FormRenderingNotebook', { pages : pages });
$notebook.contents().appendTo($new_notebook);
$notebook.before($new_notebook).remove();
$new_notebook.children().each(function() {
self.process($(this));
});
self.process($($new_notebook.children()[0]));
//tabs and invisibility handling
$new_notebook.tabs();
_.each(pages, function(page, i) {
if (! page.__ic)
return;
page.__ic.on("change:effective_invisible", null, function() {
var current = $new_notebook.tabs("option", "selected");
if (! pages[current].__ic || ! pages[current].__ic.get("effective_invisible"))
return;
var first_visible = _.find(_.range(pages.length), function(i2) {
return (! pages[i2].__ic) || (! pages[i2].__ic.get("effective_invisible"));
});
if (first_visible !== undefined) {
$new_notebook.tabs('select', first_visible);
}
});
});
this.handle_common_properties($new_notebook, $notebook);
return $new_notebook;
},
process_separator: function($separator, layout) {
var $new_separator = this.render_element('FormRenderingSeparator', layout, $separator.getAttributes());
process_separator: function($separator) {
var $new_separator = this.render_element('FormRenderingSeparator', $separator.getAttributes());
$separator.before($new_separator).remove();
this.handle_common_properties($new_separator, $separator);
return $new_separator;
},
process_label: function($label, layout) {
process_label: function($label) {
var name = $label.attr("for"),
field_orm = this.fvg.fields[name];
var dict = {
@ -1223,7 +1259,7 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
align = 'center';
}
dict.align = align;
var $new_label = this.render_element('FormRenderingLabel', layout, dict);
var $new_label = this.render_element('FormRenderingLabel', dict);
$label.before($new_label).remove();
this.handle_common_properties($new_label, $label);
if (name) {
@ -1234,10 +1270,12 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
handle_common_properties: function($new_element, $node) {
var str_modifiers = $node.attr("modifiers") || "{}"
var modifiers = JSON.parse(str_modifiers);
var ic = null;
if (modifiers.invisible !== undefined)
new instance.web.form.InvisibilityChanger(this.view, this.view, modifiers.invisible, $new_element);
ic = new instance.web.form.InvisibilityChanger(this.view, this.view, modifiers.invisible, $new_element);
$new_element.addClass($node.attr("class") || "");
$new_element.attr('style', $node.attr('style'));
return {invisibility_changer: ic,};
},
});
@ -1375,15 +1413,11 @@ instance.web.form.InvisibilityChangerMixin = {
_.bind(check, this)();
},
start: function() {
var check_visibility = function() {
if (this.get("effective_invisible")) {
this.$element.hide();
} else {
this.$element.show();
}
};
this.on("change:effective_invisible", this, check_visibility);
_.bind(check_visibility, this)();
this.on("change:effective_invisible", this, this._check_visibility);
this._check_visibility();
},
_check_visibility: function() {
this.$element.toggleClass('oe_form_invisible', this.get("effective_invisible"));
},
};
@ -1730,6 +1764,8 @@ instance.web.form.AbstractField = instance.web.form.FormWidget.extend(_.extend({
this.on("change:required", this, this._set_required);
this._set_required();
}
this._check_visibility();
this._check_css_flags();
},
/**
* Private. Do not use.
@ -1832,6 +1868,7 @@ instance.web.form.ReinitializeFieldMixin = {
instance.web.form.FieldChar = instance.web.form.AbstractField.extend(_.extend({}, instance.web.form.ReinitializeFieldMixin, {
template: 'FieldChar',
widget_class: 'oe_form_field_char',
init: function (field_manager, node) {
this._super(field_manager, node);
this.password = this.node.attrs.password === 'True' || this.node.attrs.password === '1';
@ -1869,7 +1906,7 @@ instance.web.form.FieldChar = instance.web.form.AbstractField.extend(_.extend({}
return true;
},
is_false: function() {
return this.get('value') === '';
return this.get('value') === '' || this._super();
},
focus: function() {
this.delay_focus(this.$element.find('input:first'));
@ -1936,6 +1973,7 @@ instance.web.form.FieldUrl = instance.web.form.FieldChar.extend({
instance.web.form.FieldFloat = instance.web.form.FieldChar.extend({
is_field_number: true,
widget_class: 'oe_form_field_float',
init: function (field_manager, node) {
this._super(field_manager, node);
this.set({'value': 0});
@ -1955,7 +1993,7 @@ instance.web.form.FieldFloat = instance.web.form.FieldChar.extend({
});
instance.web.DateTimeWidget = instance.web.OldWidget.extend({
template: "web.datetimepicker",
template: "web.datepicker",
jqueryui_object: 'datetimepicker',
type_of_date: "datetime",
init: function(parent) {
@ -2040,7 +2078,7 @@ instance.web.DateWidget = instance.web.DateTimeWidget.extend({
});
instance.web.form.FieldDatetime = instance.web.form.AbstractField.extend(_.extend({}, instance.web.form.ReinitializeFieldMixin, {
template: "EmptyComponent",
template: "FieldDatetime",
build_widget: function() {
return new instance.web.DateTimeWidget(this);
},
@ -2077,7 +2115,7 @@ instance.web.form.FieldDatetime = instance.web.form.AbstractField.extend(_.exten
return true;
},
is_false: function() {
return this.get('value') === '';
return this.get('value') === '' || this._super();
},
focus: function() {
if (this.datewidget && this.datewidget.$input)
@ -2086,6 +2124,7 @@ instance.web.form.FieldDatetime = instance.web.form.AbstractField.extend(_.exten
}));
instance.web.form.FieldDate = instance.web.form.FieldDatetime.extend({
template: "FieldDate",
build_widget: function() {
return new instance.web.DateWidget(this);
}
@ -2126,7 +2165,7 @@ instance.web.form.FieldText = instance.web.form.AbstractField.extend(_.extend({}
return true;
},
is_false: function() {
return this.get('value') === '';
return this.get('value') === '' || this._super();
},
focus: function($element) {
this.delay_focus(this.$textarea);
@ -2744,9 +2783,12 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
}
view.options.not_interactible_on_create = true;
} else if (view.view_type === "kanban") {
view.options.confirm_on_delete = false;
if (self.get("effective_readonly")) {
view.options.action_buttons = false;
view.options.quick_creatable = false;
view.options.creatable = false;
view.options.read_only_mode = true;
}
}
views.push(view);
@ -3096,7 +3138,7 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_.
if (this.get("effective_readonly"))
return;
var self = this;
self. $text = $("textarea", this.$element);
self.$text = $("textarea", this.$element);
self.$text.textext({
plugins : 'tags arrow autocomplete',
autocomplete: {
@ -3148,19 +3190,6 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_.
return _.extend(el, {index:i});
})});
});
}).bind('tagClick', function(e, tag, value, callback) {
var pop = new instance.web.form.FormOpenPopup(self.view);
pop.show_element(
self.field.relation,
value.id,
self.build_context(),
{
title: _t("Open: ") + (self.string || self.name)
}
);
pop.on_write_completed.add_last(function() {
self.render_value();
});
}).bind('hideDropdown', function() {
self._drop_shown = false;
}).bind('showDropdown', function() {
@ -3168,7 +3197,7 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_.
});
self.tags = self.$text.textext()[0].tags();
$("textarea", this.$element).focusout(function() {
$("textarea", this.$element).val("");
self.$text.trigger("setInputData", "");
}).keydown(function(e) {
if (event.keyCode === 9 && self._drop_shown) {
self.$text.textext()[0].autocomplete().selectFromDropdown();
@ -3204,17 +3233,6 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_.
self.tags.addTags(_.map(data, function(el) {return {name: el[1], id:el[0]};}));
} else {
self.$element.html(QWeb.render("FieldMany2ManyTags.box", {elements: data}));
$(".oe_form_field_many2manytags_box", self.$element).click(function() {
var index = Number($(this).data("index"));
self.do_action({
type: 'ir.actions.act_window',
res_model: self.field.relation,
res_id: self.get("value")[index],
context: self.build_context(),
views: [[false, 'form']],
target: 'current'
});
});
}
};
if (! self.get('values') || self.get('values').length > 0) {
@ -3276,6 +3294,9 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({
self.reload_content();
this.is_setted.resolve();
},
get_value: function() {
return [commands.replace_with(this.get('value'))];
},
load_view: function() {
var self = this;
this.list_view = new instance.web.form.Many2ManyListView(this, this.dataset, false, {
@ -3305,7 +3326,7 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({
});
},
dataset_changed: function() {
this.set({'value': [commands.replace_with(this.dataset.ids)]});
this.set({'value': this.dataset.ids});
},
});
@ -3407,6 +3428,8 @@ instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend(
'create_text': _t("Add"),
'creatable': self.get("effective_readonly") ? false : true,
'quick_creatable': self.get("effective_readonly") ? false : true,
'read_only_mode': self.get("effective_readonly") ? true : false,
'confirm_on_delete': false,
});
var embedded = (this.field.views || {}).kanban;
if (embedded) {
@ -3553,6 +3576,7 @@ instance.web.form.Many2ManyQuickCreate = instance.web.Widget.extend({
var self = this;
self.$text.val("");
self.trigger('added', id);
this.m2m.dataset_changed();
},
});
}
@ -3607,7 +3631,7 @@ instance.web.form.AbstractFormPopup = instance.web.OldWidget.extend({
width: '90%',
min_width: '800px',
close: function() {
self.check_exit();
self.check_exit(true);
},
title: this.options.title || "",
}, this.$element).open();
@ -3665,9 +3689,10 @@ instance.web.form.AbstractFormPopup = instance.web.OldWidget.extend({
},
on_select_elements: function(element_ids) {
},
check_exit: function() {
check_exit: function(no_destroy) {
if (this.created_elements.length > 0) {
this.on_select_elements(this.created_elements);
this.created_elements = [];
}
this.destroy();
},
@ -3756,7 +3781,8 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend
self.view_list = new instance.web.form.SelectCreateListView(self,
self.dataset, false,
_.extend({'deletable': false,
'selectable': !self.options.disable_multiple_selection
'selectable': !self.options.disable_multiple_selection,
'read_only': true,
}, self.options.list_view_options || {}));
self.view_list.popup = self;
self.view_list.appendTo($(".oe-select-create-popup-view-list", self.$element)).pipe(function() {
@ -4049,11 +4075,11 @@ instance.web.form.FieldBinaryImage = instance.web.form.FieldBinary.extend({
template: 'FieldBinaryImage',
initialize_content: function() {
this._super();
this.$placeholder = $(".oe_form_field-binary-image-placeholder", this.$element);
if (!this.get("effective_readonly"))
this.$element.find('.oe-binary').show();
else
this.$element.find('.oe-binary').hide();
if (!this.get("effective_readonly")) {
this.$element.find('.oe_form_field_image_controls').show();
} else {
this.$element.find('.oe_form_field_image_controls').hide();
}
},
set_value: function(value_) {
this._super.apply(this, arguments);
@ -4069,8 +4095,9 @@ instance.web.form.FieldBinaryImage = instance.web.form.FieldBinary.extend({
} else {
url = "/web/static/src/img/placeholder.png";
}
var rendered = QWeb.render("FieldBinaryImage-img", {widget: this, url: url});;
this.$placeholder.html(rendered);
var img = QWeb.render("FieldBinaryImage-img", { widget: this, url: url });
this.$element.find('> img').remove();
this.$element.prepend(img);
},
on_file_change: function() {
this.render_value();
@ -4088,68 +4115,121 @@ instance.web.form.FieldBinaryImage = instance.web.form.FieldBinary.extend({
});
instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
template: "EmptyComponent",
tagName: "span",
start: function() {
this._super();
this.selected_value = null;
this.render_list();
// preview in start only for selection fields, because of the dynamic behavior of many2one fields.
if (this.field.type in ['selection']) {
this.render_list();
}
},
set_value: function(value_) {
var self = this;
this._super(value_);
this.selected_value = value_;
this.render_list();
// find selected value:
// - many2one: [2, "New"] -> 2
// - selection: new -> new
if (this.field.type == "many2one") {
this.selected_value = value_[0];
} else {
this.selected_value = value_;
}
// trick to be sure all values are loaded in the form, therefore
// enabling the evaluation of dynamic domains
$.async_when().then(function() {
return self.render_list();
});
},
/** Get the status list and render them
* to_show: [[identifier, value_to_display]] where
* - identifier = key for a selection, id for a many2one
* - display_val = label that will be displayed
* - ex: [[0, "New"]] (many2one) or [["new", "In Progress"]] (selection)
*/
render_list: function() {
var self = this;
// get selection values, filter them and render them
var selection_done = this.get_selection().pipe(self.proxy('filter_selection')).pipe(self.proxy('render_elements'));
},
/** Get the selection list to be displayed in the statusbar widget.
* For selection fields: this is directly given by this.field.selection
* For many2one fields :
* - perform a search on the relation of the many2one field (given by
* field.relation )
* - get the field domain for the search
* - self.build_domain() gives the domain given by the view or by
* the field
* - if the optional statusbar_fold attribute is set to true, make
* an AND with build_domain to hide all 'fold=true' columns
* - make an OR with current value, to be sure it is displayed,
* with the correct order, even if it is folded
*/
get_selection: function() {
var self = this;
if (this.field.type == "many2one") {
this.selection = [];
// get fold information from widget
var fold = ((this.node.attrs || {}).statusbar_fold || true);
// build final domain: if fold option required, add the
if (fold == true) {
var domain = new instance.web.CompoundDomain(['|'], ['&'], self.build_domain(), [['fold', '=', false]], [['id', '=', self.selected_value]]);
} else {
var domain = new instance.web.CompoundDomain(['|'], self.build_domain(), [['id', '=', self.selected_value]]);
}
// get a DataSetSearch on the current field relation (ex: crm.lead.stage_id -> crm.case.stage)
var model_ext = new instance.web.DataSetSearch(this, this.field.relation, self.build_context(), domain);
// fetch selection
var read_defer = model_ext.read_slice(['name'], {}).pipe( function (records) {
_(records).each(function (record) {
self.selection.push([record.id, record.name]);
});
});
} else {
this.selection = this.field.selection;
var read_defer = new $.Deferred().resolve();
}
return read_defer;
},
/** Filters this.selection, according to values coming from the statusbar_visible
* attribute of the field. For example: statusbar_visible="draft,open"
* Currently, the key of (key, label) pairs has to be used in the
* selection of visible items. This feature is not meant to be used
* with many2one fields.
*/
filter_selection: function() {
var self = this;
var shown = _.map(((this.node.attrs || {}).statusbar_visible || "").split(","),
function(x) { return _.str.trim(x); });
shown = _.select(shown, function(x) { return x.length > 0; });
if (shown.length == 0) {
this.to_show = this.field.selection;
this.to_show = this.selection;
} else {
this.to_show = _.select(this.field.selection, function(x) {
this.to_show = _.select(this.selection, function(x) {
return _.indexOf(shown, x[0]) !== -1 || x[0] === self.selected_value;
});
}
},
/** Renders the widget. This function also checks for statusbar_colors='{"pending": "blue"}'
* attribute in the widget. This allows to set a given color to a given
* state (given by the key of (key, label)).
*/
render_elements: function () {
var content = instance.web.qweb.render("FieldStatus.content", {widget: this, _:_});
this.$element.html(content);
var colors = JSON.parse((this.node.attrs || {}).statusbar_colors || "{}");
var color = colors[this.selected_value];
if (color) {
var elem = this.$element.find("li.oe-arrow-list-selected span");
elem.css("border-color", color);
if (this.check_white(color))
elem.css("color", "white");
elem = this.$element.find("li.oe-arrow-list-selected .oe-arrow-list-before");
elem.css("border-left-color", "rgba(0,0,0,0)");
elem = this.$element.find("li.oe-arrow-list-selected .oe-arrow-list-after");
elem.css("border-color", "rgba(0,0,0,0)");
elem.css("border-left-color", color);
var elem = this.$element.find("li.oe_form_steps_active span");
elem.css("color", color);
}
},
check_white: function(color) {
var div = $("<div></div>");
div.css("display", "none");
div.css("color", color);
div.appendTo($("body"));
var ncolor = div.css("color");
div.remove();
var res = /^\s*rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)\s*$/.exec(ncolor);
if (!res) {
return false;
}
var comps = [parseInt(res[1]), parseInt(res[2]), parseInt(res[3])];
var lum = comps[0] * 0.3 + comps[1] * 0.59 + comps[1] * 0.11;
if (lum < 128) {
return true;
}
return false;
}
});
/**

View File

@ -21,6 +21,9 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
// whether the view rows can be reordered (via vertical drag & drop)
'reorderable': true,
'action_buttons': true,
// if true, the view can't be editable, ignoring the view's and the context's
// instructions
'read_only': false,
},
/**
* Core class for list-type displays.
@ -339,6 +342,8 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
this.sidebar = new instance.web.Sidebar(this);
this.sidebar.appendTo(this.options.$sidebar);
this.sidebar.add_items('other', [
{ label: _t("Import"), callback: this.on_sidebar_import },
{ label: _t("Export"), callback: this.on_sidebar_export },
{ label: _t('Delete'), callback: this.do_delete_selected },
]);
this.sidebar.add_toolbar(this.fields_view.toolbar);
@ -1338,7 +1343,7 @@ instance.web.ListView.Groups = instance.web.Class.extend( /** @lends instance.we
} else if (column.id in group.aggregates) {
var r = {};
r[column.id] = {value: group.aggregates[column.id]};
$('<td class="oe-number">')
$('<td class="oe_number">')
.html(instance.web.format_cell(
r, column, {process_modifiers: false}))
.appendTo($row);

View File

@ -54,8 +54,7 @@ openerp.web.list_editable = function (instance) {
// view' @editable is handled separately as we have not yet
// fetched and processed the view at this point.
this.options.editable = (
(force && "bottom")
|| this.defaults.editable);
! this.options.read_only && ((force && "bottom") || this.defaults.editable));
},
/**
* Replace do_search to handle editability process
@ -79,7 +78,7 @@ openerp.web.list_editable = function (instance) {
},
on_loaded: function (data, grouped) {
// tree/@editable takes priority on everything else if present.
this.options.editable = data.arch.attrs.editable || this.options.editable;
this.options.editable = ! this.options.read_only && (data.arch.attrs.editable || this.options.editable);
return this._super(data, grouped);
},
/**
@ -421,7 +420,8 @@ openerp.web.list_editable = function (instance) {
w.appendTo($td);
$td.appendTo($element);
});
$("<td><button class='oe-edit-row-save' type='button'>Save</button></td>").appendTo($element);
save = QWeb.render('ListView.row.save');
$(save).appendTo($element);
},
});
};

View File

@ -267,7 +267,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
* @param {Boolean} [no_store=false] don't store the view being switched to on the switch stack
* @returns {jQuery.Deferred} new view loading promise
*/
on_mode_switch: function(view_type, no_store) {
on_mode_switch: function(view_type, no_store, view_options) {
var self = this;
var view = this.views[view_type];
var view_promise;
@ -330,7 +330,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
var controller = self.views[view_name].controller;
if (controller) {
if (view_name === view_type) {
controller.do_show();
controller.do_show(view_options || {});
} else {
controller.do_hide();
}
@ -347,8 +347,8 @@ instance.web.ViewManager = instance.web.Widget.extend({
* to be extended by child classes to change the default behavior, which simply
* consist to switch to the asked view.
*/
switch_view: function(view_type, no_store) {
return this.on_mode_switch(view_type, no_store);
switch_view: function(view_type, no_store, options) {
return this.on_mode_switch(view_type, no_store, options);
},
/**
* Returns to the view preceding the caller view in this manager's
@ -651,10 +651,10 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
}, action || {});
this.do_action(action);
},
on_mode_switch: function (view_type, no_store) {
on_mode_switch: function (view_type, no_store, options) {
var self = this;
return $.when(this._super(view_type, no_store)).then(function () {
return $.when(this._super.apply(this, arguments)).then(function () {
var controller = self.views[self.active_view].controller,
fvg = controller.fields_view,
view_id = (fvg && fvg.view_id) || '--';
@ -706,11 +706,8 @@ instance.web.Sidebar = instance.web.Widget.extend({
this.items = {
'print' : [],
'files' : [],
'other' : [
{ label: _t("Import"), callback: view.on_sidebar_import },
{ label: _t("Export"), callback: view.on_sidebar_export }
]
}
'other' : []
};
if (this.session.uid === 1) {
var item = { label: _t("Translate"), callback: view.on_sidebar_translate, title: _t("Technical translation") };
this.items.other.push(item);
@ -746,6 +743,11 @@ instance.web.Sidebar = instance.web.Widget.extend({
var self = this;
self.$element.html(QWeb.render('Sidebar', {widget: self}));
this.$element.find('ul').hide();
// Hides Sidebar sections when item list is empty
this.$('.oe_form_dropdown_section').each(function() {
$(this).toggle(!!$(this).find('li').length);
});
},
/**
* For each item added to the section:

View File

@ -424,7 +424,7 @@
<td>
<ul class="oe_view_manager_switch oe_button_group oe_right">
<t t-if="widget.views_src.length > 2" t-foreach="widget.views_src" t-as="view">
<li t-if="view.view_type != 'form'" class="oe_e"><a t-attf-class="oe_vm_switch_#{view.view_type}" t-att-data-view-type="view.view_type" t-att-title="view.label || view.view_type">
<li t-if="view.view_type != 'form'" class="oe_e"><a t-attf-class="oe_vm_switch_#{view.view_type}" t-att-data-view-type="view.view_type" t-att-title="_t('Switch to ') + (view.label || view.view_type)">
</a></li>
</t>
</ul>
@ -591,7 +591,7 @@
t-if="!field.attrs.modifiers.tree_invisible"
t-att-data-id="record.id"
t-att-style="color_for(record) + style "
t-attf-class="#{class} #{rank} #{(fields[field.attrs.name].type === 'float') or (fields[field.attrs.name].type === 'integer') ? 'oe-number' : ''}">
t-attf-class="#{class} #{rank} #{(fields[field.attrs.name].type === 'float') or (fields[field.attrs.name].type === 'integer') ? 'oe_number' : ''}">
<span t-if="!field.attrs.modifiers.invisible" >
<t t-esc="render(record[field.attrs.name], fields[field.attrs.name])" />
@ -634,7 +634,7 @@
<tfoot>
<tr>
<td t-if="options.selectable"/>
<td t-foreach="aggregate_columns" t-as="column" class="oe-list-footer oe-number"
<td t-foreach="aggregate_columns" t-as="column" class="oe-list-footer oe_number"
t-att-data-field="column.id" t-att-title="column.label">
</td>
<td t-if="options.deletable"/>
@ -679,7 +679,7 @@
<t t-foreach="columns" t-as="column">
<t t-set="align" t-value="column.type === 'integer' or column.type == 'float'"/>
<td t-if="!column.meta and column.invisible !== '1'" t-att-title="column.help"
t-att-class="'oe-field-cell' + (align ? ' oe-number' : '')
t-att-class="'oe-field-cell' + (align ? ' oe_number' : '')
+ (column.tag === 'button' ? ' oe-button' : '')"
t-att-data-field="column.id">
<t t-raw="render_cell(record, column)"/>
@ -690,6 +690,12 @@
</td>
</tr>
<t t-name="ListView.row.save">
<td>
<button class='oe_i oe-edit-row-save' type='button' name='save'>S</button>
</td>
</t>
<t t-name="FormView">
<div class="oe_formview">
<div class="oe_form_buttons"/>
@ -773,31 +779,19 @@
</table>
</form>
<t t-name="FormRenderingForm.manual">
<div class="oe_form_manual_layout"/>
</t>
<t t-name="FormRenderingForm">
<div t-attf-class="#{classnames}">
</div>
</t>
<t t-name="FormRenderingSheet">
<div class="oe_form_sheetbg">
<div t-attf-class="oe_form_sheet oe_form_sheet_width #{classnames}">
<group t-if="layout === 'auto'" col="4"/>
</div>
</div>
</t>
<t t-name="FormRenderingSheet" t-extend="FormRenderingForm">
</t>
<t t-name="FormRenderingGroup">
<t t-set="table">
<table border="0" cellpadding="0" cellspacing="0" width="100%" t-att-class="classnames"/>
</t>
<t t-if="string">
<fieldset class="oe_group_box">
<legend><t t-esc="string"/></legend>
<t t-raw="table"/>
</fieldset>
</t>
<t t-if="!string">
<t t-raw="table"/>
</t>
<t t-if="string" t-call="FormRenderingSeparator"/>
<table border="0" cellpadding="0" cellspacing="0" width="100%" t-attf-class="oe_form_group #{classnames}"/>
</t>
<t t-name="FormRenderingNotebook">
<div>
@ -812,7 +806,6 @@
</t>
<t t-name="FormRenderingNotebookPage">
<div t-attf-class="oe_form_notebook_page #{classnames}" t-att-id="id">
<group t-if="layout === 'auto'" col="4"/>
</div>
</t>
<t t-name="FormRenderingSeparator">
@ -895,75 +888,47 @@
</ul>
</t>
<t t-name="FieldChar">
<t t-if="!widget.get('effective_readonly')">
<div class="oe_form_field_char">
<span t-att-class="'oe_form_field '+widget.widget_class">
<t t-if="!widget.get('effective_readonly')">
<input t-att-type="widget.password ? 'password' : 'text'"
t-att-id="widget.id_for_label"
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
t-attf-class="field_char #{widget.is_field_number ? 'oe-number' : ''}"
t-att-placeholder="widget.node.attrs.placeholder"
/><img class="oe_field_translate oe_input_icon" t-if="widget.field.translate" t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"/>
</div>
</t>
<t t-if="widget.get('effective_readonly')">
<span t-attf-class="oe_form_field_char #{widget.is_field_number ? 'oe-number' : ''}"/>
</t>
</t>
</span>
</t>
<t t-name="FieldEmail">
<t t-if="!widget.get('effective_readonly')">
<table class="oe_form_field_email" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<span class="oe_form_field oe_form_field_email oe_form_field_with_button">
<a t-if="widget.get('effective_readonly')" href="#" class="oe_form_uri"/>
<t t-if="!widget.get('effective_readonly')">
<button class="oe_button" tabindex="-1" type="button" title="Send an e-mail with your default e-mail client">
<img t-att-src='_s + "/web/static/src/img/icons/terp-mail-message-new.png"'/>
</button>
<div>
<input type="text"
t-att-id="widget.id_for_label"
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
t-att-placeholder="widget.node.attrs.placeholder"
/>
</td>
<td width="16">
<button class="oe_button oe_field_button" tabindex="-1" type="button" title="Send an e-mail with your default e-mail client">
<img t-att-src='_s + "/web/static/src/img/icons/terp-mail-message-new.png"'/>
</button>
</td>
</tr>
</table>
</t>
<t t-if="widget.get('effective_readonly')">
<span>
<a href="#" class="oe_form_uri"/>
</span>
</t>
</div>
</t>
</span>
</t>
<t t-name="FieldUrl">
<t t-if="!widget.get('effective_readonly')">
<table class="oe_form_field_url" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<input type="text"
t-att-id="widget.id_for_label"
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
t-att-placeholder="widget.node.attrs.placeholder"
/>
</td>
<td width="16">
<button class="oe_button oe_field_button" tabindex="-1" type="button" title="Open this resource">
<img t-att-src='_s + "/web/static/src/img/icons/gtk-ok.png"'/>
</button>
</td>
</tr>
</table>
<t t-name="FieldUrl" t-extend="FieldEmail">
<t t-jquery="span:first">
this.removeClass('oe_form_field_email').addClass('oe_form_field_url');
</t>
<t t-if="widget.get('effective_readonly')">
<span>
<a href="#" class="oe_form_uri"/>
</span>
<t t-jquery="button.oe_button" t-operation="replace">
<button class="oe_button" tabindex="-1" type="button" title="Open this resource">
<img t-att-src='_s + "/web/static/src/img/icons/gtk-ok.png"'/>
</button>
</t>
</t>
<t t-name="FieldText">
<div class="oe_form_field_text">
<div class="oe_form_field oe_form_field_text">
<textarea rows="6"
t-att-name="widget.name"
class="field_text"
@ -975,41 +940,45 @@
t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"/>
</div>
</t>
<t t-name="web.datetimepicker">
<t t-set="placeholder" t-value="widget.getParent().node and widget.getParent().node.attrs.placeholder"/>
<div class="oe_datepicker_root oe_form_field_datetime">
<t t-name="web.datepicker">
<span>
<t t-set="placeholder" t-value="widget.getParent().node and widget.getParent().node.attrs.placeholder"/>
<input type="text" class="oe_datepicker_container" disabled="disabled" style="display: none;"/>
<input type="text"
t-att-name="widget.name"
t-att-placeholder="placeholder"
t-attf-class="oe_datepicker_master field_#{widget.type_of_date} oe_form_field_#{widget.type_of_date}"
class="oe_datepicker_master"
/><img class="oe_input_icon oe_datepicker_trigger" t-att-src='_s + "/web/static/src/img/ui/field_calendar.png"'
title="Select date" width="16" height="16" border="0"/>
</div>
</span>
</t>
<t t-name="FieldDate">
<span class="oe_form_field oe_datepicker_root oe_form_field_date"/>
</t>
<t t-name="FieldDatetime">
<span class="oe_form_field oe_datepicker_root oe_form_field_datetime"/>
</t>
<t t-name="FieldSelection">
<t t-if="!widget.get('effective_readonly')">
<div class="oe_form_field_selection">
<select
t-att-name="widget.name"
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
t-att-id="widget.id_for_label">
<t t-foreach="widget.values" t-as="option">
<option><t t-esc="option[1]"/></option>
</t>
</select>
</div>
</t>
<t t-if="widget.get('effective_readonly')">
<span class="field_selection"/>
</t>
<span class="oe_form_field oe_form_field_selection">
<select t-if="!widget.get('effective_readonly')"
t-att-name="widget.name"
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
t-att-id="widget.id_for_label">
<t t-foreach="widget.values" t-as="option">
<option><t t-esc="option[1]"/></option>
</t>
</select>
</span>
</t>
<t t-name="FieldMany2One">
<t t-if="!widget.get('effective_readonly')">
<table class="oe_form_field_many2one" cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top">
<span class="oe_form_field oe_form_field_many2one oe_form_field_with_button">
<a t-if="widget.get('effective_readonly')" href="#" class="oe_form_uri"/>
<t t-if="!widget.get('effective_readonly')">
<button class="oe_button oe-m2o-cm-button" title="Open Resource">
<img t-att-src='_s + "/web/static/src/img/icons/terp-folder-yellow.png"'/>
</button>
<div>
<input type="text"
t-att-id="widget.id_for_label"
t-att-tabindex="widget.node.attrs.tabindex"
@ -1017,24 +986,14 @@
t-att-placeholder="widget.node.attrs.placeholder"
/>
<span class="oe-m2o-drop-down-button">
<img t-att-src='_s + "/web/static/src/img/down-arrow.png"' /></span>
</td>
<td width="16">
<button class="oe_button oe_field_button oe-m2o-cm-button" title="Open Resource">
<img t-att-src='_s + "/web/static/src/img/icons/terp-folder-yellow.png"'/>
</button>
</td>
</tr>
</table>
</t>
<t t-if="widget.get('effective_readonly')">
<span>
<a href="#" class="oe_form_uri"/>
</span>
</t>
<img t-att-src='_s + "/web/static/src/img/down-arrow.png"'/>
</span>
</div>
</t>
</span>
</t>
<t t-name="FieldMany2ManyTags">
<div class="oe_form_field_many2manytags">
<div class="oe_form_field oe_form_field_many2manytags">
<t t-if="! widget.get('effective_readonly')">
<textarea rows="1" style="width: 100%"></textarea>
</t>
@ -1050,17 +1009,19 @@
</t>
</t>
<t t-name="FieldReference">
<table class="oe_form_field_reference oe_form" border="0" cellpadding="0" cellspacing="0">
<table class="oe_form_field oe_form_field_reference oe_form" border="0" cellpadding="0" cellspacing="0">
<tr>
<td t-attf-class="oe_form_frame_cell oe_form_selection oe_form_view_reference_selection">
<td t-attf-class="oe_form_frame_cell oe_form_selection">
<span t-attf-class="oe_form_view_reference_selection"/>
</td>
<td t-attf-class="oe_form_frame_cell oe_form_many2one oe_form_view_reference_m2o" nowrap="true" style="display: none">
<td t-attf-class="oe_form_frame_cell oe_form_many2one" nowrap="true">
<span t-attf-class="oe_form_view_reference_m2o"/>
</td>
</tr>
</table>
</t>
<t t-name="FieldBoolean">
<span class="oe_form_field_boolean">
<span class="oe_form_field oe_form_field_boolean">
<input type="checkbox"
t-att-id="widget.id_for_label"
t-att-name="widget.name"
@ -1070,88 +1031,61 @@
</span>
</t>
<t t-name="FieldProgressBar">
<div class="oe_form_field_progressbar" t-opentag="true">
<span class="oe_form_field oe_form_field_progressbar" t-opentag="true">
<span></span>
</div>
</t>
<t t-name="FieldStatus.content">
<ul class="oe-arrow-list">
<t t-set="size" t-value="widget.to_show.length"/>
<t t-foreach="_.range(size)" t-as="i">
<li t-att-class="widget.to_show[i][0] === widget.selected_value ? 'oe-arrow-list-selected' : ''">
<span class="oe-arrow-list-before" t-if="i &gt; 0"></span><span><t t-esc="widget.to_show[i][1]"/></span><span class="oe-arrow-list-after" t-if="i &lt; size - 1"></span>
</li>
</t>
</ul>
</span>
</t>
<t t-name="FieldStatus.content">
<ul class="oe_form_steps">
<t t-set="size" t-value="widget.to_show.length"/>
<t t-foreach="_.range(size)" t-as="i">
<li t-att-class="widget.to_show[i][0] === widget.selected_value ? 'oe_form_steps_active' : ''">
<t t-esc="widget.to_show[i][1]"/>
<span><t t-esc="widget.to_show[i][1]"/></span>
<img t-att-src='_s + "/web/static/src/img/form_steps.png"' class="oe_form_steps_arrow" t-if="i &lt; size - 1"/>
</li>
</t>
</ul>
<div class="oe_clear"/>
</t>
<t t-name="FieldBinaryImage">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td class="oe_form_field-binary-image-placeholder" align="center">
</td>
</tr>
<tr>
<td align="center" valign="bottom" height="25">
<div class="oe-binary">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td>
<div class="oe-binary-file-set">
<form class="oe-binary-form" t-att-target="widget.iframe"
method="post" enctype="multipart/form-data" action="/web/binary/upload">
<input type="hidden" name="session_id" value=""/>
<input type="hidden" name="callback" t-att-value="widget.iframe"/>
<button class="oe_button" type="button" title="Set Image">
<img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/>
</button>
<input type="file" class="oe-binary-file" name="ufile"
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
/>
</form>
</div>
</td>
<td>
<button class="oe_button oe-binary-file-clear" type="button" title="Clear">
<img t-att-src='_s + "/web/static/src/img/icons/STOCK_MISSING_IMAGE.png"'/>
</button>
</td>
</tr>
</table>
<span class="oe_form_field oe_form_field_image">
<div class="oe_form_field_image_controls">
<div class="oe-binary-file-set">
<form class="oe-binary-form" t-att-target="widget.iframe"
method="post" enctype="multipart/form-data" action="/web/binary/upload">
<input type="hidden" name="session_id" value=""/>
<input type="hidden" name="callback" t-att-value="widget.iframe"/>
<button class="oe_button" type="button" title="Set Image">
<img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/>
</button>
<input type="file" class="oe-binary-file" name="ufile"
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
/>
</form>
</div>
<button class="oe_button oe-binary-file-clear" type="button" title="Clear">
<img t-att-src='_s + "/web/static/src/img/icons/STOCK_MISSING_IMAGE.png"'/>
</button>
<div class="oe-binary-progress" style="display: none">
<img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16"/>
<b>Uploading ...</b>
</div>
<iframe t-att-id="widget.iframe" t-att-name="widget.iframe" style="display: none"/>
</td>
</tr>
</table>
</div>
</span>
</t>
<t t-name="FieldBinaryImage-img">
<img t-att-src='url' class="oe-binary-image field_image"
<img t-att-src='url'
t-att-border="widget.readonly ? 0 : 1"
t-att-name="widget.name"
t-att-width="widget.node.attrs.img_width || widget.node.attrs.width"
t-att-height="widget.node.attrs.img_height || widget.node.attrs.height"
t-att-style="'max-width: ' + (widget.$element.width() > 60 ? widget.$element.width() : 60) + 'px'"
/>
</t>
<t t-name="FieldBinaryFile">
<t t-if="!widget.get('effective_readonly')">
<table class="oe_form_field_binary" cellpadding="0" cellspacing="0" border="0">
<table class="oe_form_field oe_form_field_binary" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<input type="text" size="1" readonly="readonly"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-17 04:49+0000\n"
"X-Generator: Launchpad (build 15259)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Poedit-Language: Czech\n"
#. openerp-web

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -15,8 +15,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"Language: es\n"
#. openerp-web

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11
@ -38,4 +38,4 @@ msgstr "ნავიგატორი"
#: addons/web_calendar/static/src/xml/web_calendar.xml:5
#: addons/web_calendar/static/src/xml/web_calendar.xml:6
msgid "&nbsp;"
msgstr ""
msgstr "&nbsp;"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_dashboard/static/src/js/dashboard.js:63

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_dashboard/static/src/js/dashboard.js:63

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_dashboard/static/src/js/dashboard.js:63

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Poedit-Language: Czech\n"
#. openerp-web

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_dashboard/static/src/js/dashboard.js:63

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
"X-Generator: Launchpad (build 15238)\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. openerp-web
#: addons/web_dashboard/static/src/js/dashboard.js:63
@ -36,12 +36,12 @@ msgstr "Nicht kategorisiert"
#: addons/web_dashboard/static/src/js/dashboard.js:324
#, python-format
msgid "Execute task \"%s\""
msgstr ""
msgstr "Aufgabe \"%s\" ausführen"
#. openerp-web
#: addons/web_dashboard/static/src/js/dashboard.js:325
msgid "Mark this task as done"
msgstr ""
msgstr "Als erledigt markieren"
#. openerp-web
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:4
@ -71,7 +71,7 @@ msgstr "&nbsp;"
#. openerp-web
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:28
msgid "Create"
msgstr "Erzeuge"
msgstr "Anlegen"
#. openerp-web
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:39

Some files were not shown because too many files have changed in this diff Show More