[MERGE] : merge with lp:~openerp-dev/openobject-addons/trunk-website-al-blog-imp-aja
bzr revid: aja@tinyerp.com-20140207061928-2s378cq1okd0fs2v
|
@ -7,14 +7,14 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||
"PO-Revision-Date: 2012-06-20 16:14+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"PO-Revision-Date: 2014-02-02 15:35+0000\n"
|
||||
"Last-Translator: Jakub Drozd <Unknown>\n"
|
||||
"Language-Team: Czech <openerp-i18n-czech@lists.launchpad.net>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2014-01-28 05:54+0000\n"
|
||||
"X-Generator: Launchpad (build 16914)\n"
|
||||
"X-Launchpad-Export-Date: 2014-02-03 05:18+0000\n"
|
||||
"X-Generator: Launchpad (build 16916)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: account
|
||||
|
@ -195,7 +195,7 @@ msgstr "Označení sloupce"
|
|||
#. module: account
|
||||
#: help:account.config.settings,code_digits:0
|
||||
msgid "No. of digits to use for account code"
|
||||
msgstr ""
|
||||
msgstr "Počet číslic použitých v čísle účtu"
|
||||
|
||||
#. module: account
|
||||
#: help:account.analytic.journal,type:0
|
||||
|
@ -258,7 +258,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: field:account.config.settings,sale_refund_sequence_next:0
|
||||
msgid "Next credit note number"
|
||||
msgstr ""
|
||||
msgstr "Další číslo dobropisu"
|
||||
|
||||
#. module: account
|
||||
#: help:account.config.settings,module_account_voucher:0
|
||||
|
@ -444,7 +444,7 @@ msgstr ""
|
|||
#: code:addons/account/static/src/xml/account_move_line_quickadd.xml:8
|
||||
#, python-format
|
||||
msgid "Period :"
|
||||
msgstr ""
|
||||
msgstr "Období :"
|
||||
|
||||
#. module: account
|
||||
#: field:account.account.template,chart_template_id:0
|
||||
|
@ -660,12 +660,12 @@ msgstr "Hlavní číselná řada musí být odlišná od současné!"
|
|||
#: code:addons/account/wizard/account_change_currency.py:70
|
||||
#, python-format
|
||||
msgid "Current currency is not configured properly."
|
||||
msgstr ""
|
||||
msgstr "Stávající měna není správně nakonfigurována."
|
||||
|
||||
#. module: account
|
||||
#: field:account.journal,profit_account_id:0
|
||||
msgid "Profit Account"
|
||||
msgstr ""
|
||||
msgstr "Účet zisků"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account_move_line.py:1156
|
||||
|
@ -761,6 +761,8 @@ msgid ""
|
|||
"The date of your Journal Entry is not in the defined period! You should "
|
||||
"change the date or remove this constraint from the journal."
|
||||
msgstr ""
|
||||
"Datum vašeho záznamu deníku není v určeném období! Měli byste změnit datum "
|
||||
"nebo odstranit omezení z deníku."
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_report_general_ledger
|
||||
|
@ -781,7 +783,7 @@ msgstr "Opravdu chcete vytvořit záznamy?"
|
|||
#: code:addons/account/account_invoice.py:1361
|
||||
#, python-format
|
||||
msgid "Invoice partially paid: %s%s of %s%s (%s%s remaining)."
|
||||
msgstr ""
|
||||
msgstr "Faktura částečně uhrazena: %s%s z %s%s (%s%s zbývá)."
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
|
@ -890,7 +892,7 @@ msgstr "Analytický účet knihy"
|
|||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
msgid "Send by Email"
|
||||
msgstr ""
|
||||
msgstr "Odeslat e-mailem"
|
||||
|
||||
#. module: account
|
||||
#: help:account.central.journal,amount_currency:0
|
||||
|
@ -992,7 +994,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: model:mail.message.subtype,description:account.mt_invoice_paid
|
||||
msgid "Invoice paid"
|
||||
msgstr ""
|
||||
msgstr "Faktura uhrazena"
|
||||
|
||||
#. module: account
|
||||
#: view:validate.account.move:0
|
||||
|
@ -1095,7 +1097,7 @@ msgstr "Kód"
|
|||
#. module: account
|
||||
#: view:account.config.settings:0
|
||||
msgid "Features"
|
||||
msgstr ""
|
||||
msgstr "Vlastnosti"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:2346
|
||||
|
@ -1162,7 +1164,7 @@ msgstr "Režim na šířku"
|
|||
#. module: account
|
||||
#: help:account.fiscalyear.close,fy_id:0
|
||||
msgid "Select a Fiscal year to close"
|
||||
msgstr "Vyberte finanční rok k uzavření"
|
||||
msgstr "Vyberte fiskální rok k uzavření"
|
||||
|
||||
#. module: account
|
||||
#: help:account.account.template,user_type:0
|
||||
|
@ -1296,7 +1298,7 @@ msgstr "Kód bude zobrazen na výkazech."
|
|||
#. module: account
|
||||
#: view:account.tax.template:0
|
||||
msgid "Taxes used in Purchases"
|
||||
msgstr "Daně použité při nákuu"
|
||||
msgstr "Daně použité při nákupu"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice.tax,tax_code_id:0
|
||||
|
@ -1310,13 +1312,13 @@ msgstr "Kód daně"
|
|||
#. module: account
|
||||
#: field:account.account,currency_mode:0
|
||||
msgid "Outgoing Currencies Rate"
|
||||
msgstr "Odchozí měnový poměr"
|
||||
msgstr "Odchozí měnový kurz"
|
||||
|
||||
#. module: account
|
||||
#: view:account.analytic.account:0
|
||||
#: field:account.config.settings,chart_template_id:0
|
||||
msgid "Template"
|
||||
msgstr ""
|
||||
msgstr "Šablona"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.analytic.journal,type:0
|
||||
|
@ -1389,7 +1391,7 @@ msgstr "Účet"
|
|||
#. module: account
|
||||
#: field:account.tax,include_base_amount:0
|
||||
msgid "Included in base amount"
|
||||
msgstr "Včetně základu"
|
||||
msgstr "Zahrnuto v základní částce"
|
||||
|
||||
#. module: account
|
||||
#: view:account.entries.report:0
|
||||
|
@ -1457,7 +1459,7 @@ msgstr "Položky vyrovnání"
|
|||
#: model:ir.actions.report.xml,name:account.account_overdue
|
||||
#: view:res.company:0
|
||||
msgid "Overdue Payments"
|
||||
msgstr "Zpožděné platby"
|
||||
msgstr "Platby po splatnosti"
|
||||
|
||||
#. module: account
|
||||
#: report:account.third_party_ledger:0
|
||||
|
@ -1529,7 +1531,7 @@ msgstr "Účet pohledávek"
|
|||
#: code:addons/account/account.py:768
|
||||
#, python-format
|
||||
msgid "%s (copy)"
|
||||
msgstr ""
|
||||
msgstr "%s (kopie)"
|
||||
|
||||
#. module: account
|
||||
#: report:account.account.balance:0
|
||||
|
@ -1572,7 +1574,7 @@ msgstr "# z položek"
|
|||
#. module: account
|
||||
#: field:account.automatic.reconcile,max_amount:0
|
||||
msgid "Maximum write-off amount"
|
||||
msgstr "Max.množství odpisu"
|
||||
msgstr "Maximální hodnota odpisu"
|
||||
|
||||
#. module: account
|
||||
#. openerp-web
|
||||
|
@ -1605,7 +1607,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: view:account.invoice.refund:0
|
||||
msgid "Credit Note"
|
||||
msgstr ""
|
||||
msgstr "Dobropis"
|
||||
|
||||
#. module: account
|
||||
#: view:account.config.settings:0
|
||||
|
@ -1615,7 +1617,7 @@ msgstr "Elektronická fakturace a platby"
|
|||
#. module: account
|
||||
#: view:account.analytic.cost.ledger.journal.report:0
|
||||
msgid "Cost Ledger for Period"
|
||||
msgstr "Kniha nákladových účtu za období"
|
||||
msgstr "Kniha nákladových účtú za období"
|
||||
|
||||
#. module: account
|
||||
#: view:account.entries.report:0
|
||||
|
@ -1690,7 +1692,7 @@ msgstr "Bez daně"
|
|||
#. module: account
|
||||
#: view:account.journal:0
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
msgstr "Rozšířená nastavení"
|
||||
|
||||
#. module: account
|
||||
#: view:account.bank.statement:0
|
||||
|
@ -1796,7 +1798,7 @@ msgstr "Analytické účtenictví"
|
|||
#. module: account
|
||||
#: report:account.overdue:0
|
||||
msgid "Sub-Total :"
|
||||
msgstr "Mezisoučet"
|
||||
msgstr "Mezisoučet :"
|
||||
|
||||
#. module: account
|
||||
#: help:res.company,tax_calculation_rounding_method:0
|
||||
|
@ -1826,7 +1828,7 @@ msgstr "15 dnů"
|
|||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.periodical_processing_invoicing
|
||||
msgid "Invoicing"
|
||||
msgstr "Fakturování"
|
||||
msgstr "Fakturace"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/report/account_partner_balance.py:115
|
||||
|
@ -1951,7 +1953,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: help:account.period,special:0
|
||||
msgid "These periods can overlap."
|
||||
msgstr "Tyto období se mohou překrývat."
|
||||
msgstr "Tato období se mohou překrývat."
|
||||
|
||||
#. module: account
|
||||
#: model:process.node,name:account.process_node_draftstatement0
|
||||
|
@ -1977,7 +1979,7 @@ msgstr "Částka Dal"
|
|||
#: field:account.bank.statement,message_ids:0
|
||||
#: field:account.invoice,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
msgstr "Zprávy"
|
||||
|
||||
#. module: account
|
||||
#: view:account.vat.declaration:0
|
||||
|
@ -2075,7 +2077,7 @@ msgstr "Analýza faktur"
|
|||
#. module: account
|
||||
#: model:ir.model,name:account.model_mail_compose_message
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
msgstr "Průvodce vytvořením emailu"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_period_close
|
||||
|
@ -7494,7 +7496,7 @@ msgstr "Pro procenta zadejte násobek mezi 0-1."
|
|||
#: field:account.invoice,date_invoice:0
|
||||
#: field:report.invoice.created,date_invoice:0
|
||||
msgid "Invoice Date"
|
||||
msgstr "Datum vystavení"
|
||||
msgstr "Datum vystavení faktury"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.report:0
|
||||
|
|
|
@ -30,7 +30,7 @@ from openerp.tools import exception_to_unicode
|
|||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
class Home(openerp.addons.web.controllers.main.Home):
|
||||
class AuthSignup(openerp.addons.web.controllers.main.Home):
|
||||
|
||||
@http.route()
|
||||
def web_login(self, *args, **kw):
|
||||
|
@ -60,7 +60,7 @@ class Home(openerp.addons.web.controllers.main.Home):
|
|||
qcontext.update(config)
|
||||
|
||||
if 'error' in qcontext or mode not in ('reset', 'signup') or (not token and not config[mode]):
|
||||
response = super(Home, self).web_login(*args, **kw)
|
||||
response = super(AuthSignup, self).web_login(*args, **kw)
|
||||
if isinstance(response, LazyResponse):
|
||||
response.params['values'].update(config)
|
||||
return response
|
||||
|
@ -86,7 +86,7 @@ class Home(openerp.addons.web.controllers.main.Home):
|
|||
request.cr.commit()
|
||||
except SignupError, e:
|
||||
qcontext['error'] = exception_to_unicode(e)
|
||||
return super(Home, self).web_login(*args, **kw)
|
||||
return super(AuthSignup, self).web_login(*args, **kw)
|
||||
|
||||
return response
|
||||
|
||||
|
|
|
@ -0,0 +1,515 @@
|
|||
# Bosnian translation for openobject-addons
|
||||
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2014-02-01 22:19+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Bosnian <bs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2014-02-02 05:31+0000\n"
|
||||
"X-Generator: Launchpad (build 16916)\n"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,email_from:0
|
||||
#: field:email_template.preview,email_from:0
|
||||
msgid "From"
|
||||
msgstr "Od"
|
||||
|
||||
#. module: email_template
|
||||
#: field:mail.compose.message,template_id:0
|
||||
msgid "Template"
|
||||
msgstr "Predložak"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,ref_ir_value:0
|
||||
#: help:email_template.preview,ref_ir_value:0
|
||||
msgid "Sidebar button to open the sidebar action"
|
||||
msgstr "Dugme za otvaranje akcije sidebar-a"
|
||||
|
||||
#. module: email_template
|
||||
#: field:res.partner,opt_out:0
|
||||
msgid "Opt-Out"
|
||||
msgstr "Isključiti iz masovne e-pošte"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,email_to:0
|
||||
#: field:email_template.preview,email_to:0
|
||||
msgid "To (Emails)"
|
||||
msgstr "Za (E-mailovi)"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,mail_server_id:0
|
||||
#: field:email_template.preview,mail_server_id:0
|
||||
msgid "Outgoing Mail Server"
|
||||
msgstr "Odlazni E-mail server"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,ref_ir_act_window:0
|
||||
#: help:email_template.preview,ref_ir_act_window:0
|
||||
msgid ""
|
||||
"Sidebar action to make this template available on records of the related "
|
||||
"document model"
|
||||
msgstr ""
|
||||
"Akcija sidebar-a za postavljanje ovog prijedloga dostupnog na akcijama "
|
||||
"povezanog modela dokumenta"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,model_object_field:0
|
||||
#: field:email_template.preview,model_object_field:0
|
||||
msgid "Field"
|
||||
msgstr "Polje"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,email_from:0
|
||||
#: help:email_template.preview,email_from:0
|
||||
msgid "Sender address (placeholders may be used here)"
|
||||
msgstr ""
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid "Remove context action"
|
||||
msgstr "Ukloni kontekstnu akciju"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,mail_server_id:0
|
||||
#: help:email_template.preview,mail_server_id:0
|
||||
msgid ""
|
||||
"Optional preferred server for outgoing mails. If not set, the highest "
|
||||
"priority one will be used."
|
||||
msgstr ""
|
||||
"Opcioni preferirani server za izlaznu poštu. Ako nije podešen koristiti će "
|
||||
"se onaj sa najvišim prioritetom."
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,report_name:0
|
||||
#: field:email_template.preview,report_name:0
|
||||
msgid "Report Filename"
|
||||
msgstr "Naziv fajla izvještaja"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid "Preview"
|
||||
msgstr "Pregled"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,reply_to:0
|
||||
#: field:email_template.preview,reply_to:0
|
||||
msgid "Reply-To"
|
||||
msgstr "Odgovori na"
|
||||
|
||||
#. module: email_template
|
||||
#: view:mail.compose.message:0
|
||||
msgid "Use template"
|
||||
msgstr "Koristi predložak"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,body_html:0
|
||||
#: field:email_template.preview,body_html:0
|
||||
msgid "Body"
|
||||
msgstr "Sadržaj"
|
||||
|
||||
#. module: email_template
|
||||
#: code:addons/email_template/email_template.py:247
|
||||
#, python-format
|
||||
msgid "%s (copy)"
|
||||
msgstr "%s (kopija)"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,user_signature:0
|
||||
#: help:email_template.preview,user_signature:0
|
||||
msgid ""
|
||||
"If checked, the user's signature will be appended to the text version of the "
|
||||
"message"
|
||||
msgstr ""
|
||||
"Ako je odabrano, potpis korisnika biti će dodan tekst verziji poruke."
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid "SMTP Server"
|
||||
msgstr "SMTP server"
|
||||
|
||||
#. module: email_template
|
||||
#: view:mail.compose.message:0
|
||||
msgid "Save as new template"
|
||||
msgstr "Spremi kao novi predložak"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,sub_object:0
|
||||
#: help:email_template.preview,sub_object:0
|
||||
msgid ""
|
||||
"When a relationship field is selected as first field, this field shows the "
|
||||
"document model the relationship goes to."
|
||||
msgstr ""
|
||||
"Kada je relaciono polje odabrano kao prvo polje, ovo polje prikazuje model "
|
||||
"dokumenta kojem relacija odlazi."
|
||||
|
||||
#. module: email_template
|
||||
#: model:ir.model,name:email_template.model_email_template
|
||||
msgid "Email Templates"
|
||||
msgstr "E-mail predlošci"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,report_name:0
|
||||
#: help:email_template.preview,report_name:0
|
||||
msgid ""
|
||||
"Name to use for the generated report file (may contain placeholders)\n"
|
||||
"The extension can be omitted and will then come from the report type."
|
||||
msgstr ""
|
||||
"Naziv za korišćenje generisanog fajla izvještaja(može da sadrži držače "
|
||||
"mjesta)\n"
|
||||
"Ekstenzija može biti zanemarena i biće zamjenjena tipom izvještaja."
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,ref_ir_act_window:0
|
||||
#: field:email_template.preview,ref_ir_act_window:0
|
||||
msgid "Sidebar action"
|
||||
msgstr "Akcija sidebar-a"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,lang:0
|
||||
#: help:email_template.preview,lang:0
|
||||
msgid ""
|
||||
"Optional translation language (ISO code) to select when sending out an "
|
||||
"email. If not set, the english version will be used. This should usually be "
|
||||
"a placeholder expression that provides the appropriate language code, e.g. "
|
||||
"${object.partner_id.lang.code}."
|
||||
msgstr ""
|
||||
"Opcioni jezik prevoda (ISO šifra) za izbor prilikom slanja email-a. Ako nije "
|
||||
"postavljeno, koristiće se engleska verzija. Ovo bi najčešće treblo biti "
|
||||
"izraz držača mjesta koja obezbjeđuje odgovarajuću šifru jezika, npr: "
|
||||
"${object.partner_id.lang.code}."
|
||||
|
||||
#. module: email_template
|
||||
#: field:email_template.preview,res_id:0
|
||||
msgid "Sample Document"
|
||||
msgstr "Primjer dokumenta"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,model_object_field:0
|
||||
#: help:email_template.preview,model_object_field:0
|
||||
msgid ""
|
||||
"Select target field from the related document model.\n"
|
||||
"If it is a relationship field you will be able to select a target field at "
|
||||
"the destination of the relationship."
|
||||
msgstr ""
|
||||
"Odaberite ciljno polje iz povezanog modela dokumenta.\n"
|
||||
"Ako je ovo relaciono polje moći će te odabrati ciljano polje na odredištu "
|
||||
"relacije."
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid "Dynamic Value Builder"
|
||||
msgstr "Kreator dinamičke vrijednosti"
|
||||
|
||||
#. module: email_template
|
||||
#: model:ir.actions.act_window,name:email_template.wizard_email_template_preview
|
||||
msgid "Template Preview"
|
||||
msgstr "Pregled predloška"
|
||||
|
||||
#. module: email_template
|
||||
#: view:mail.compose.message:0
|
||||
msgid "Save as a new template"
|
||||
msgstr "Spremi kao novi predložak"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid ""
|
||||
"Display an option on related documents to open a composition wizard with "
|
||||
"this template"
|
||||
msgstr ""
|
||||
"Na povezanim dokumentima prikaži opciju koja poziva čarobnjak sa ovim "
|
||||
"predloškom"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,email_cc:0
|
||||
#: help:email_template.preview,email_cc:0
|
||||
msgid "Carbon copy recipients (placeholders may be used here)"
|
||||
msgstr "Primaoci kopije(mogu se koristiti držači mjesta)"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,email_to:0
|
||||
#: help:email_template.preview,email_to:0
|
||||
msgid "Comma-separated recipient addresses (placeholders may be used here)"
|
||||
msgstr "Adrese primatelja odvojene zarezom"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid "Advanced"
|
||||
msgstr "Napredno"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email_template.preview:0
|
||||
msgid "Preview of"
|
||||
msgstr "Pregled"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email_template.preview:0
|
||||
msgid "Using sample document"
|
||||
msgstr "Koristi primjer dokumenta"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
#: model:ir.actions.act_window,name:email_template.action_email_template_tree_all
|
||||
#: model:ir.ui.menu,name:email_template.menu_email_templates
|
||||
msgid "Templates"
|
||||
msgstr "Predlošci"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,name:0
|
||||
#: field:email_template.preview,name:0
|
||||
msgid "Name"
|
||||
msgstr "Naziv"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,lang:0
|
||||
#: field:email_template.preview,lang:0
|
||||
msgid "Language"
|
||||
msgstr "Jezik"
|
||||
|
||||
#. module: email_template
|
||||
#: model:ir.model,name:email_template.model_email_template_preview
|
||||
msgid "Email Template Preview"
|
||||
msgstr "Pregled e-mail predloška"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email_template.preview:0
|
||||
msgid "Email Preview"
|
||||
msgstr "Pregled e-maila"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid ""
|
||||
"Remove the contextual action to use this template on related documents"
|
||||
msgstr ""
|
||||
"Ukloni dodatnu akciju da se ovaj predložak koristi na povezanim dokumentima"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,copyvalue:0
|
||||
#: field:email_template.preview,copyvalue:0
|
||||
msgid "Placeholder Expression"
|
||||
msgstr "Izraz držača mjesta"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,sub_object:0
|
||||
#: field:email_template.preview,sub_object:0
|
||||
msgid "Sub-model"
|
||||
msgstr "Podmodel"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,subject:0
|
||||
#: help:email_template.preview,subject:0
|
||||
msgid "Subject (placeholders may be used here)"
|
||||
msgstr "Tema(mogu se koristiti držači mjesta)"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,reply_to:0
|
||||
#: help:email_template.preview,reply_to:0
|
||||
msgid "Preferred response address (placeholders may be used here)"
|
||||
msgstr "Preferirana adresa za odgovor (modu se koristiti držači mjesta)"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,ref_ir_value:0
|
||||
#: field:email_template.preview,ref_ir_value:0
|
||||
msgid "Sidebar Button"
|
||||
msgstr "Dugme sidebar-a"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,report_template:0
|
||||
#: field:email_template.preview,report_template:0
|
||||
msgid "Optional report to print and attach"
|
||||
msgstr "Opcioni izvještaj za ispis i zakačku"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,null_value:0
|
||||
#: help:email_template.preview,null_value:0
|
||||
msgid "Optional value to use if the target field is empty"
|
||||
msgstr "Opciona vrijednost koja će se koristiti ako je ciljano polje prazno"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#. module: email_template
|
||||
#: model:ir.model,name:email_template.model_mail_compose_message
|
||||
msgid "Email composition wizard"
|
||||
msgstr "Čarobnjak sastavljanja email-a"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid "Add context action"
|
||||
msgstr "Dodaj kontekstualnu akciju"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,model_id:0
|
||||
#: help:email_template.preview,model_id:0
|
||||
msgid "The kind of document with with this template can be used"
|
||||
msgstr "Vrsta dokumenta koja se može koristiti sa ovi predloškom"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,email_recipients:0
|
||||
#: field:email_template.preview,email_recipients:0
|
||||
msgid "To (Partners)"
|
||||
msgstr "Za (Partneri)"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,auto_delete:0
|
||||
#: field:email_template.preview,auto_delete:0
|
||||
msgid "Auto Delete"
|
||||
msgstr "Auto brisanje"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,copyvalue:0
|
||||
#: help:email_template.preview,copyvalue:0
|
||||
msgid ""
|
||||
"Final placeholder expression, to be copy-pasted in the desired template "
|
||||
"field."
|
||||
msgstr ""
|
||||
"Krajnji izraz držača mjesta, koji će biti kopiran-zalijepljen na željenom "
|
||||
"polju predloška."
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,model:0
|
||||
#: field:email_template.preview,model:0
|
||||
msgid "Related Document Model"
|
||||
msgstr "Povezani model dokumenta"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid "Addressing"
|
||||
msgstr "Adresiranje"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,email_recipients:0
|
||||
#: help:email_template.preview,email_recipients:0
|
||||
msgid ""
|
||||
"Comma-separated ids of recipient partners (placeholders may be used here)"
|
||||
msgstr ""
|
||||
"IDovi zarezom odvojeni partnera primatelja(mogu se koristiti držači mjesta)"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,attachment_ids:0
|
||||
#: field:email_template.preview,attachment_ids:0
|
||||
msgid "Attachments"
|
||||
msgstr "Zakačke"
|
||||
|
||||
#. module: email_template
|
||||
#: code:addons/email_template/email_template.py:234
|
||||
#, python-format
|
||||
msgid "Deletion of the action record failed."
|
||||
msgstr "Brisanje zapisa akcije polja."
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,email_cc:0
|
||||
#: field:email_template.preview,email_cc:0
|
||||
msgid "Cc"
|
||||
msgstr "Cc"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,model_id:0
|
||||
#: field:email_template.preview,model_id:0
|
||||
msgid "Applies to"
|
||||
msgstr "Odnosi se na"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,sub_model_object_field:0
|
||||
#: field:email_template.preview,sub_model_object_field:0
|
||||
msgid "Sub-field"
|
||||
msgstr "Podpolje"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid "Email Details"
|
||||
msgstr "Detalji e-maila"
|
||||
|
||||
#. module: email_template
|
||||
#: code:addons/email_template/email_template.py:199
|
||||
#, python-format
|
||||
msgid "Send Mail (%s)"
|
||||
msgstr "Pošalji e-mail (%s)"
|
||||
|
||||
#. module: email_template
|
||||
#: help:res.partner,opt_out:0
|
||||
msgid ""
|
||||
"If checked, this partner will not receive any automated email notifications, "
|
||||
"such as the availability of invoices."
|
||||
msgstr ""
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,auto_delete:0
|
||||
#: help:email_template.preview,auto_delete:0
|
||||
msgid "Permanently delete this email after sending it, to save space"
|
||||
msgstr "Trajno obriši ovaj e-mail nakon slanja, radi uštede prostora"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid "Group by..."
|
||||
msgstr "Grupiši po..."
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,sub_model_object_field:0
|
||||
#: help:email_template.preview,sub_model_object_field:0
|
||||
msgid ""
|
||||
"When a relationship field is selected as first field, this field lets you "
|
||||
"select the target field within the destination document model (sub-model)."
|
||||
msgstr ""
|
||||
"Kada je relaciono polje izabrano kao prvo polje, ovo polje Vam dozvoljava da "
|
||||
"odaberete ciljno polje u sklopu odredišnok dokumentnog modela (podmodela)"
|
||||
|
||||
#. module: email_template
|
||||
#: code:addons/email_template/email_template.py:234
|
||||
#, python-format
|
||||
msgid "Warning"
|
||||
msgstr "Upozorenje"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,user_signature:0
|
||||
#: field:email_template.preview,user_signature:0
|
||||
msgid "Add Signature"
|
||||
msgstr "Dodaj potpis"
|
||||
|
||||
#. module: email_template
|
||||
#: model:ir.model,name:email_template.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,null_value:0
|
||||
#: field:email_template.preview,null_value:0
|
||||
msgid "Default Value"
|
||||
msgstr "Podrazumijevana vrijednost"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,attachment_ids:0
|
||||
#: help:email_template.preview,attachment_ids:0
|
||||
msgid ""
|
||||
"You may attach files to this template, to be added to all emails created "
|
||||
"from this template"
|
||||
msgstr ""
|
||||
"Možete priložiti datoteke ovom predlošku, one će biti dodate svim e-"
|
||||
"mailovima kreiranim iz ovog predloška"
|
||||
|
||||
#. module: email_template
|
||||
#: help:email.template,body_html:0
|
||||
#: help:email_template.preview,body_html:0
|
||||
msgid "Rich-text/HTML version of the message (placeholders may be used here)"
|
||||
msgstr "Rich-text/HTML verzija poruke"
|
||||
|
||||
#. module: email_template
|
||||
#: view:email.template:0
|
||||
msgid "Contents"
|
||||
msgstr "Sadržaj"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,subject:0
|
||||
#: field:email_template.preview,subject:0
|
||||
msgid "Subject"
|
||||
msgstr "Tema"
|
|
@ -14,7 +14,7 @@
|
|||
<field name="user_id" eval="ref('base.user_demo')" />
|
||||
<field name="line_id" eval="ref('line_crm_sale1')" />
|
||||
<field name="start_date" eval="time.strftime('%Y-%m-01')" />
|
||||
<field name="end_date" eval="time.strftime('%Y-%m-31')" />
|
||||
<field name="end_date" eval="(DateTime.today().replace(day=1)+relativedelta(months=1, days=-1)).strftime('%Y-%m-%d')" />
|
||||
<field name="target_goal">2000</field>
|
||||
<field name="state">inprogress</field>
|
||||
</record>
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
</record>
|
||||
<record id="action_website_tutorial" model="ir.actions.act_url">
|
||||
<field name="name">Website With Tutorial</field>
|
||||
<field name="url">/?tutorial.banner=true</field>
|
||||
<field name="url">/#tutorial.banner=true</field>
|
||||
<field name="target">self</field>
|
||||
</record>
|
||||
<record id="action_website_homepage" model="ir.actions.act_url">
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
website.BannerTour = website.Tour.extend({
|
||||
id: 'banner',
|
||||
name: "Insert a banner",
|
||||
path: '/page/website.homepage',
|
||||
path: '/',
|
||||
init: function (editor) {
|
||||
var self = this;
|
||||
self.steps = [
|
||||
|
@ -48,13 +48,12 @@
|
|||
{
|
||||
waitFor: '.oe_overlay_options .oe_options:visible',
|
||||
element: '#wrap [data-snippet-id=carousel]:first .carousel-caption',
|
||||
sampleText: 'My Title',
|
||||
placement: 'top',
|
||||
title: "Customize banner's text",
|
||||
content: "Click in the text and start editing it. Click continue once it's done.",
|
||||
template: self.popover({ next: "Continue" }),
|
||||
},
|
||||
{
|
||||
waitNot: '#wrap [data-snippet-id=carousel]:first .carousel-caption:contains("Your Banner Title")',
|
||||
element: '.oe_overlay_options .oe_options',
|
||||
placement: 'left',
|
||||
title: "Customize the banner",
|
||||
|
|
|
@ -7,10 +7,6 @@ website.add_template_file('/website/static/src/xml/website.tour.xml');
|
|||
website.EditorBar.include({
|
||||
tours: [],
|
||||
start: function () {
|
||||
// $('.tour-backdrop').click(function (e) {
|
||||
// e.stopImmediatePropagation();
|
||||
// e.preventDefault();
|
||||
// });
|
||||
var self = this;
|
||||
var menu = $('#help-menu');
|
||||
_.each(this.tours, function (tour) {
|
||||
|
@ -113,11 +109,13 @@ website.Tour = openerp.Class.extend({
|
|||
this.localStorage.setItem("tour-"+this.id+"-test-automatic", true);
|
||||
}
|
||||
|
||||
// redirect to begin of the tour
|
||||
if (this.path) {
|
||||
var path = this.path.split('?');
|
||||
window.location.href = path[0] + "?tutorial."+this.id+"=true" + path.slice(1, path.length).join("?");
|
||||
return;
|
||||
// redirect to begin of the tour in function of the language
|
||||
if (!this.testUrl(this.path+"(#.*)?$")) {
|
||||
var path = this.path.split('#');
|
||||
window.location.href = "/"+this.getLang()+path[0] + "#tutorial."+this.id+"=true&" + path.slice(1, path.length).join("#");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var self = this;
|
||||
|
@ -125,12 +123,12 @@ website.Tour = openerp.Class.extend({
|
|||
website.Tour.waitReady.call(this, function () {self._running();});
|
||||
},
|
||||
running: function () {
|
||||
if (+this.localStorage.getItem("tour-"+this.id+"-test") >= this.steps.length) {
|
||||
if (+this.localStorage.getItem("tour-"+this.id+"-test") >= this.steps.length-1) {
|
||||
this.endTour();
|
||||
return;
|
||||
}
|
||||
|
||||
if (website.Tour.is_busy() || !this.testUrl()) return;
|
||||
if (website.Tour.is_busy() || !this.testPathUrl()) return;
|
||||
|
||||
// launch tour with url
|
||||
this.checkRunningUrl();
|
||||
|
@ -143,7 +141,6 @@ website.Tour = openerp.Class.extend({
|
|||
var self = this;
|
||||
website.Tour.waitReady.call(this, function () {self._running();});
|
||||
},
|
||||
|
||||
_running: function () {
|
||||
var stepId = this.localStorage.getItem("tour-"+this.id+"-test");
|
||||
var automatic = !!this.localStorage.getItem("tour-"+this.id+"-test-automatic");
|
||||
|
@ -174,13 +171,19 @@ website.Tour = openerp.Class.extend({
|
|||
$('.popover.tour').remove();
|
||||
},
|
||||
|
||||
testUrl: function () {
|
||||
return !this.testPath || this.testPath.test(window.location.href);
|
||||
getLang: function () {
|
||||
return $("html").attr("lang").replace(/-/, '_');
|
||||
},
|
||||
testUrl: function (url) {
|
||||
return new RegExp("(/"+this.getLang()+")?"+url, "i").test(window.location.href);
|
||||
},
|
||||
testPathUrl: function () {
|
||||
if (!this.testPath || this.testUrl(this.testPath)) return true;
|
||||
},
|
||||
checkRunningUrl: function () {
|
||||
if (window.location.search.indexOf("tutorial."+this.id+"=true") > -1) {
|
||||
if (window.location.hash.indexOf("tutorial."+this.id+"=true") > -1) {
|
||||
this.localStorage.setItem("tour-"+this.id+"-test", 0);
|
||||
window.location.href = window.location.href.replace(/tutorial.+=true&?/, '');
|
||||
window.location.hash = window.location.hash.replace(/tutorial.+=true&?/, '');
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -315,7 +318,11 @@ website.Tour = openerp.Class.extend({
|
|||
}
|
||||
},
|
||||
endTour: function () {
|
||||
console.log('{ "event": "success" }');
|
||||
if (parseInt(this.localStorage.getItem("tour-"+this.id+"-test"),10) >= this.steps.length-1) {
|
||||
console.log('{ "event": "success" }');
|
||||
} else {
|
||||
console.log('{ "event": "canceled" }');
|
||||
}
|
||||
this.reset();
|
||||
},
|
||||
autoNextStep: function () {
|
||||
|
|
|
@ -25,6 +25,7 @@ from openerp.tools.translate import _
|
|||
from openerp import SUPERUSER_ID
|
||||
|
||||
import werkzeug
|
||||
import random
|
||||
|
||||
|
||||
|
||||
|
@ -205,7 +206,9 @@ class WebsiteBlog(http.Controller):
|
|||
MONTHS = [None, _('January'), _('February'), _('March'), _('April'),
|
||||
_('May'), _('June'), _('July'), _('August'), _('September'),
|
||||
_('October'), _('November'), _('December')]
|
||||
|
||||
post_ids = blog_post_obj.search(cr, uid, [], context=context)
|
||||
random_post_list = list(set(post_ids)-set([blog_post.id]))
|
||||
next_blog_id = random_post_list[random.randint(0, len(blog_ids))]
|
||||
values = {
|
||||
'blog': blog_post.blog_id,
|
||||
'blogs': blogs,
|
||||
|
@ -217,7 +220,8 @@ class WebsiteBlog(http.Controller):
|
|||
'nav_list': self.nav_list(),
|
||||
'enable_editor': enable_editor,
|
||||
'date': date,
|
||||
'date_name': date and "%s %s" % (MONTHS[int(date.split("-")[1])], date.split("-")[0]) or None
|
||||
'date_name': date and "%s %s" % (MONTHS[int(date.split("-")[1])], date.split("-")[0]) or None,
|
||||
'next_post' : request.registry['blog.post'].browse(cr, uid, next_blog_id, context=context)
|
||||
}
|
||||
return request.website.render("website_blog.blog_post_complete", values)
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<record id="action_open_website" model="ir.actions.act_url">
|
||||
<field name="name">Website Blogs</field>
|
||||
<field name="target">self</field>
|
||||
<field name="url" eval="'/blog/'+str(ref('website_blog.blog_blog_1'))+'/?tutorial.blog=true'"/>
|
||||
<field name="url" eval="'/blog/'+str(ref('website_blog.blog_blog_1'))+'/#tutorial.blog=true'"/>
|
||||
</record>
|
||||
<record id="base.open_menu" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_open_website"/>
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
easily mark messages for future actions. Every inbox
|
||||
should be empty after having been processed; no more
|
||||
overload of information.
|
||||
<img class="img-responsive shadow" src="/website/static/src/img/mail-sc-00.png"/>
|
||||
<img class="img-responsive shadow" src="/website_blog/static/src/img/mail-sc-00.png"/>
|
||||
</li><li>
|
||||
Keep control of what you want to receive or don't want
|
||||
to receive. People should never receive spam. You
|
||||
|
@ -86,7 +86,7 @@
|
|||
does not require you to click on every mail to read a
|
||||
thread. Reading a full thread, replying, attaching
|
||||
documents is super fast.
|
||||
<img class="img-responsive shadow" src="/website/static/src/img/mail-sc-03.png"/>
|
||||
<img class="img-responsive shadow" src="/website_blog/static/src/img/mail-sc-03.png"/>
|
||||
</li><li>
|
||||
<strong>A mix of push & pull:</strong> Today, people are victims
|
||||
of what others decide to push to them. OpenERP differentiates:
|
||||
|
@ -137,7 +137,7 @@
|
|||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<img class="img-responsive" src="/website/static/src/img/CMS_WMS_screens.jpg" style="margin: 0 auto;"/>
|
||||
<img class="img-responsive" src="/website_blog/static/src/img/CMS_WMS_screens.jpg" style="margin: 0 auto;"/>
|
||||
</div>
|
||||
<div class="col-md-6 col-md-offset-3 mb16 mt16">
|
||||
<p class="text-center">
|
||||
|
@ -367,7 +367,7 @@
|
|||
have a salary at that time.</p>
|
||||
<p>We changed the deal and I got the 3 million EUR. It allowed
|
||||
me to recruit a rocking management team.</p>
|
||||
<img class="img-responsive shadow" src="/website/static/src/img/OpemERP_board.jpg"/>
|
||||
<img class="img-responsive shadow" src="/website_blog/static/src/img/OpemERP_board.jpg"/>
|
||||
<h3 class="mt16">Being a mature company<h3>
|
||||
<p>With this money in our bank account, we boosted two
|
||||
departments: R&D and Sales. We burned two million EUR in 18 months,
|
||||
|
@ -392,7 +392,7 @@
|
|||
over the span of roughly two years! This is when we understood
|
||||
that OpenERP is a marathon, not a sprint. Only 100% growth a
|
||||
year is ok... if you can keep the rhythm for several years.</p>
|
||||
<img class="img-responsive shadow" src="/website/static/src/img/turnover_updated.png"/>
|
||||
<img class="img-responsive shadow" src="/website_blog/static/src/img/turnover_updated.png"/>
|
||||
<p class="text-center" section_inner="1">
|
||||
<strong>OpenERP Monthly Turnover</strong></p>
|
||||
<p>As usual, I should have listened to my wife. She is way more
|
||||
|
|
|
@ -1,206 +0,0 @@
|
|||
/* line 2, ../scss/_extensions.scss */
|
||||
.container, main div.page .content {
|
||||
max-width: 100%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* line 7, ../scss/_extensions.scss */
|
||||
.stretchy-bg, main div.page .big-image {
|
||||
background-position: center center;
|
||||
background-repeat: none;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
-o-background-size: cover;
|
||||
background-size: cover !important;
|
||||
}
|
||||
main div.page.next .big-image{
|
||||
height : 50vh;
|
||||
}
|
||||
|
||||
main div.page.current .big-image {
|
||||
height: 100vh;
|
||||
}
|
||||
@media (min-width: 500px) {
|
||||
.big-image, main div.page .big-image {
|
||||
height: 420px;
|
||||
}
|
||||
}
|
||||
|
||||
/* line 4, ../scss/_mixins.scss */
|
||||
::-webkit-scrollbar {
|
||||
width: 3px;
|
||||
height: 3px;
|
||||
}
|
||||
|
||||
/* line 9, ../scss/_mixins.scss */
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #666666;
|
||||
}
|
||||
|
||||
/* line 13, ../scss/_mixins.scss */
|
||||
::-webkit-scrollbar-track {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
/* line 18, ../scss/_mixins.scss */
|
||||
main {
|
||||
scrollbar-face-color: #666666;
|
||||
scrollbar-track-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
/* line 11, ../scss/styles.scss */
|
||||
main {
|
||||
color: #555;
|
||||
padding: 20px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
-webkit-backface-visibility: hidden;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
line-height: 1.8em;
|
||||
/* Responsive typography, yay! */
|
||||
}
|
||||
main h1, main h2, main h3, main h4, main h5, main h6 {
|
||||
color: #333;
|
||||
}
|
||||
/* line 36, ../scss/styles.scss */
|
||||
main div.page {
|
||||
-webkit-transform-origin: bottom center;
|
||||
/* Class applied when when page fades away. */
|
||||
/* The large image that accompanies every post. */
|
||||
/* The content. */
|
||||
}
|
||||
/* line 39, ../scss/styles.scss */
|
||||
main div.page.hidden {
|
||||
display: none;
|
||||
}
|
||||
/* line 42, ../scss/styles.scss */
|
||||
main div.page.next .big-image, main div.page.next .big-image {
|
||||
cursor: pointer;
|
||||
}
|
||||
/* line 43, ../scss/styles.scss */
|
||||
main div.page.next .big-image .inner, main div.page.next .big-image .inner {
|
||||
opacity: 1;
|
||||
}
|
||||
main div.page.current .big-image .inner, main div.page.current .big-image .inner {
|
||||
opacity: 1;
|
||||
}
|
||||
main div.page.current .big-image .inner .fader .text .goto-next, main div.page.current .big-image .inner .fader .text .goto-next {
|
||||
opacity: 0;
|
||||
}
|
||||
main div.page.next .post-meta {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
/* line 47, ../scss/styles.scss */
|
||||
main div.page.content-hidden .content {
|
||||
display: none;
|
||||
}
|
||||
/* line 51, ../scss/styles.scss */
|
||||
main div.page.fade-up-out {
|
||||
opacity: 0;
|
||||
-webkit-transform: scale(0.8) translate3d(0, -10%, 0);
|
||||
-moz-transform: scale(0.8) translate3d(0, -10%, 0);
|
||||
-ms-transform: scale(0.8) translate3d(0, -10%, 0);
|
||||
-o-transform: scale(0.8) translate3d(0, -10%, 0);
|
||||
transform: scale(0.8) translate3d(0, -10%, 0);
|
||||
-webkit-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
-moz-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
-o-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
/* line 57, ../scss/styles.scss */
|
||||
main div.page.easing-upward {
|
||||
-webkit-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
-moz-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
-o-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
/* line 69, ../scss/styles.scss */
|
||||
main div.page .big-image .inner, main div.page .big-image .inner {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
opacity: 0;
|
||||
text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2);
|
||||
-webkit-transition: all 0.1s ease;
|
||||
-moz-transition: all 0.1s ease;
|
||||
-o-transition: all 0.1s ease;
|
||||
transition: all 0.1s ease;
|
||||
}
|
||||
/* line 78, ../scss/styles.scss */
|
||||
main div.page .big-image .inner .fader, main div.page .big-image .inner .fader {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
/* line 83, ../scss/styles.scss */
|
||||
main div.page .big-image .inner .fader .text {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 80%;
|
||||
-webkit-transform: translateX(-50%) translateY(-50%);
|
||||
-moz-transform: translateX(-50%) translateY(-50%);
|
||||
-ms-transform: translateX(-50%) translateY(-50%);
|
||||
-o-transform: translateX(-50%) translateY(-50%);
|
||||
transform: translateX(-50%) translateY(-50%);
|
||||
}
|
||||
/* line 89, ../scss/styles.scss */
|
||||
main div.page .big-image .inner .fader .text a, main div.page .big-image .inner .fader .text h1, main div.page .big-image .inner .fader .text h2, main div.page .big-image .inner .fader .text h4 {
|
||||
color: white;
|
||||
}
|
||||
body article.page .big-image .inner .fader .text h4 {
|
||||
color: white;
|
||||
}
|
||||
/* line 91, ../scss/styles.scss */
|
||||
main div.page .big-image .inner .fader .text a {
|
||||
color: white;
|
||||
border-bottom: 1px solid white;
|
||||
text-decoration: none;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
/* line 99, ../scss/styles.scss */
|
||||
main div.page .big-image .inner .fader .text h1 {
|
||||
margin: 0;
|
||||
margin-top: 0.1em;
|
||||
padding-top: 0em;
|
||||
padding-bottom: 0em;
|
||||
margin-bottom: 0em;
|
||||
line-height: 1.1em;
|
||||
}
|
||||
/* line 105, ../scss/styles.scss */
|
||||
main div.page .big-image .inner .fader .text h2 {
|
||||
margin: 0;
|
||||
margin-top: 0.2em;
|
||||
padding-top: 0em;
|
||||
padding-bottom: 0em;
|
||||
margin-bottom: 0em;
|
||||
line-height: 1.2em;
|
||||
}
|
||||
/* line 119, ../scss/styles.scss */
|
||||
main div.page .content {
|
||||
padding: 0 3em;
|
||||
}
|
||||
/* line 123, ../scss/styles.scss */
|
||||
main div.page .content h3 {
|
||||
color: #999;
|
||||
margin-top: 3em;
|
||||
padding-top: 0em;
|
||||
padding-bottom: 0em;
|
||||
margin-bottom: 0.375em;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
/* line 131, ../scss/styles.scss */
|
||||
main div.page .content h1 {
|
||||
margin-top: 0em;
|
||||
padding-top: 0em;
|
||||
padding-bottom: 0em;
|
||||
margin-bottom: 0.24em;
|
||||
line-height: 1.08em;
|
||||
}
|
||||
/* line 140, ../scss/styles.scss */
|
||||
main div.page .content p:last-child {
|
||||
margin-bottom: 3em;
|
||||
}
|
|
@ -1,224 +0,0 @@
|
|||
|
||||
/*
|
||||
jQuery Setup
|
||||
************************************************************************/
|
||||
jQuery.ajaxSetup({
|
||||
cache: false
|
||||
})
|
||||
|
||||
/*
|
||||
ArticleAnimator Object
|
||||
************************************************************************/
|
||||
var ArticleAnimator = ArticleAnimator || {
|
||||
canScroll: true,
|
||||
initialLoad: true,
|
||||
animationDuration: 500,
|
||||
postCount: 5,
|
||||
currentPostIndex: 1,
|
||||
postCache: {},
|
||||
pageTemplate: null,
|
||||
};
|
||||
|
||||
ArticleAnimator.load = function(){
|
||||
this.currentPostIndex = getURLIndex();
|
||||
this.makeSelections();
|
||||
$body.empty();
|
||||
$body.append( this.$current )
|
||||
$body.append( this.$next )
|
||||
|
||||
var self = this;
|
||||
this.createPost({ type: 'current' }, function(){
|
||||
self.createPost({ type: 'next' }, function(){
|
||||
|
||||
/* Selections. */
|
||||
self.refreshCurrentAndNextSelection();
|
||||
|
||||
/* Push initial on to stack */
|
||||
history.pushState(pageState(), "", "#" + self.currentPostIndex)
|
||||
|
||||
/* Bind to some events. */
|
||||
self.bindGotoNextClick();
|
||||
self.bindPopstate();
|
||||
self.bindWindowScroll();
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
ArticleAnimator.makeSelections = function(){
|
||||
this.$page = $('.page');
|
||||
this.pageTemplate = elementToTemplate( this.$page.clone());
|
||||
this.$current = this.currentElementClone();
|
||||
this.$next = this.nextElementClone();
|
||||
}
|
||||
|
||||
ArticleAnimator.getPost = function(index, callback){
|
||||
callback = callback || $.noop;
|
||||
|
||||
if ( this.postCache[index] ){
|
||||
callback( this.postCache[index] );
|
||||
return;
|
||||
}
|
||||
|
||||
var self = this;
|
||||
openerp.jsonRpc("/blog_post/post/", 'call', {
|
||||
'blog': index,
|
||||
})
|
||||
.then(function (data) {
|
||||
if(!data)
|
||||
return;
|
||||
self.postCache[index] = data[0];
|
||||
callback(data[0])
|
||||
});
|
||||
}
|
||||
|
||||
ArticleAnimator.nextPostIndex = function(index){
|
||||
return (index === this.postCount) ? 1 : index + 1
|
||||
}
|
||||
|
||||
ArticleAnimator.createPost = function(opts, callback){
|
||||
opts = opts || {};
|
||||
var self = this;
|
||||
var type = opts['type'] || 'next';
|
||||
|
||||
if ( opts['fromTemplate'] ){
|
||||
$body.append( this.nextElementClone() );
|
||||
this['$' + type] = $('.' + type)
|
||||
}
|
||||
|
||||
var index = (type == 'next') ? this.nextPostIndex( this.currentPostIndex) : this.currentPostIndex;
|
||||
this.getPost(index, function(d){
|
||||
self.contentizeElement(self['$' + type], d);
|
||||
callback && callback();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
ArticleAnimator.contentizeElement = function($el, d){
|
||||
$el.find('.big-image').css({ backgroundImage: (d.image)?"url(data:image/png;base64," + d.image + ")":""});
|
||||
$el.find('h1.title').html(d.title);
|
||||
$el.find('h2.description').html(d.title_secondary);
|
||||
$el.find('.content .text').html(d.content);
|
||||
$el.find('h4.byline time').html(d.date);
|
||||
$el.find('h4.byline .author').html(d.author);
|
||||
$el.find('h4.byline .author_image').html("<img class='img-circle' style='width: 3%; margin-right:10px;' src='" + d.author_image + "'/>")
|
||||
}
|
||||
|
||||
ArticleAnimator.animatePage = function(callback){
|
||||
var self = this;
|
||||
var translationValue = this.$next.get(0).getBoundingClientRect().top;
|
||||
this.canScroll = false;
|
||||
|
||||
this.$current.addClass('fade-up-out');
|
||||
|
||||
this.$next.removeClass('content-hidden next')
|
||||
.addClass('easing-upward')
|
||||
.css({ "transform": "translate3d(0, -"+ translationValue +"px, 0)" });
|
||||
|
||||
setTimeout(function(){
|
||||
scrollTop();
|
||||
self.$next.removeClass('easing-upward')
|
||||
self.$current.remove();
|
||||
|
||||
self.$next.css({ "transform": "" });
|
||||
self.$current = self.$next.addClass('current');
|
||||
|
||||
self.canScroll = true;
|
||||
self.currentPostIndex = self.nextPostIndex( self.currentPostIndex );
|
||||
|
||||
callback();
|
||||
}, self.animationDuration );
|
||||
}
|
||||
|
||||
ArticleAnimator.bindGotoNextClick = function(){
|
||||
var self = this;
|
||||
var e = 'ontouchstart' in window ? 'touchstart' : 'click';
|
||||
|
||||
this.$next.find('.big-image').on(e, function(e){
|
||||
e.preventDefault();
|
||||
$(this).unbind(e);
|
||||
|
||||
self.animatePage(function(){
|
||||
self.createPost({ fromTemplate: true, type: 'next' });
|
||||
self.bindGotoNextClick();
|
||||
history.pushState( pageState(), '', "#" + self.currentPostIndex);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
ArticleAnimator.bindPopstate = function(){
|
||||
var self = this;
|
||||
$window.on('popstate', function(e){
|
||||
|
||||
if( !history.state || self.initialLoad ){
|
||||
self.initialLoad = false;
|
||||
return;
|
||||
}
|
||||
|
||||
self.currentPostIndex = history.state.index;
|
||||
self.$current.replaceWith( history.state.current );
|
||||
self.$next.replaceWith( history.state.next );
|
||||
|
||||
self.refreshCurrentAndNextSelection();
|
||||
self.createPost({ type: 'next' });
|
||||
self.bindGotoNextClick();
|
||||
});
|
||||
}
|
||||
|
||||
ArticleAnimator.bindWindowScroll = function(){
|
||||
var self = this;
|
||||
$window.on('mousewheel', function(ev){
|
||||
if ( !self.canScroll )
|
||||
ev.preventDefault()
|
||||
})
|
||||
}
|
||||
|
||||
ArticleAnimator.refreshCurrentAndNextSelection = function(){
|
||||
this.$current = $('.page.current');
|
||||
this.$next = $('.page.next');
|
||||
}
|
||||
|
||||
ArticleAnimator.nextElementClone = function(){
|
||||
return this.$page.clone().removeClass('hidden').addClass('next content-hidden');
|
||||
}
|
||||
|
||||
ArticleAnimator.currentElementClone = function(){
|
||||
return this.$page.clone().removeClass('hidden').addClass('current');
|
||||
}
|
||||
|
||||
/*
|
||||
Helper Functions.
|
||||
************************************************************************/
|
||||
function elementToTemplate($element){
|
||||
return $element.get(0).outerHTML;
|
||||
}
|
||||
|
||||
function scrollTop(){
|
||||
$body.add($html).scrollTop(0);
|
||||
}
|
||||
|
||||
function pageState(){
|
||||
return { index: ArticleAnimator.currentPostIndex, current: elementToTemplate(ArticleAnimator.$current), next: elementToTemplate(ArticleAnimator.$next) }
|
||||
}
|
||||
|
||||
function getURLIndex(){
|
||||
return parseInt( (history.state && history.state.index) ||window.location.hash.replace('#', "") || ArticleAnimator.currentPostIndex );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Document ready.
|
||||
************************************************************************/
|
||||
$(document).ready(function(){
|
||||
/* A couple of selections. */
|
||||
$body = $('#wrap');
|
||||
$window = $(window);
|
||||
$html = $(document.documentElement);
|
||||
|
||||
/* Let's get it started. */
|
||||
openerp.jsonRpc("/blog_post/change_layout", 'call', {})
|
||||
.then(function (data) {
|
||||
if(!data[0])
|
||||
return;
|
||||
ArticleAnimator.load();
|
||||
});
|
||||
})
|
|
@ -1,5 +1,4 @@
|
|||
@charset "utf-8";
|
||||
@import url(compass/css3.css);
|
||||
@charset "UTF-8";
|
||||
.css_website_mail .has-error {
|
||||
border-color: red;
|
||||
}
|
||||
|
@ -28,8 +27,44 @@ p.post-meta {
|
|||
-o-background-size: cover;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
height: 100vh;
|
||||
color: white;
|
||||
padding-top: 20%;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.cover_footer {
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
-o-background-size: cover;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
height: 50vh;
|
||||
color: white;
|
||||
padding-top: 10%;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.page_fadeup_out {
|
||||
opacity: 0;
|
||||
-webkit-transform: scale(0.8) translate3d(0, -10%, 0);
|
||||
-moz-transform: scale(0.8) translate3d(0, -10%, 0);
|
||||
-ms-transform: scale(0.8) translate3d(0, -10%, 0);
|
||||
-o-transform: scale(0.8) translate3d(0, -10%, 0);
|
||||
transform: scale(0.8) translate3d(0, -10%, 0);
|
||||
-webkit-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
-moz-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
-o-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
|
||||
.page_upward {
|
||||
-webkit-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
-moz-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
-o-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
|
|
|
@ -26,7 +26,40 @@ p.post-meta
|
|||
-o-background-size: cover
|
||||
background-size: cover
|
||||
background-position: center
|
||||
background-repeat: no-repeat
|
||||
background-color: rgba(0, 0, 0, 0.3)
|
||||
height: 100vh
|
||||
color: white
|
||||
padding-top: 20%
|
||||
margin-bottom: 8px
|
||||
|
||||
.cover_footer
|
||||
-webkit-background-size: cover
|
||||
-moz-background-size: cover
|
||||
-o-background-size: cover
|
||||
background-size: cover
|
||||
background-position: center
|
||||
background-repeat: no-repeat
|
||||
background-color: rgba(0, 0, 0, 0.3)
|
||||
height: 50vh
|
||||
color: white
|
||||
padding-top: 10%
|
||||
margin-bottom: 8px
|
||||
|
||||
.page_fadeup_out
|
||||
opacity: 0
|
||||
-webkit-transform: scale(0.8) translate3d(0, -10%, 0)
|
||||
-moz-transform: scale(0.8) translate3d(0, -10%, 0)
|
||||
-ms-transform: scale(0.8) translate3d(0, -10%, 0)
|
||||
-o-transform: scale(0.8) translate3d(0, -10%, 0)
|
||||
transform: scale(0.8) translate3d(0, -10%, 0)
|
||||
-webkit-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1)
|
||||
-moz-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1)
|
||||
-o-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1)
|
||||
transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1)
|
||||
|
||||
.page_upward
|
||||
-webkit-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1)
|
||||
-moz-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1)
|
||||
-o-transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1)
|
||||
transition: all 450ms cubic-bezier(0.165, 0.84, 0.44, 1)
|
||||
|
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
@ -13,7 +13,7 @@
|
|||
website.BlogTour = website.Tour.extend({
|
||||
id: 'blog',
|
||||
name: "Create a blog post",
|
||||
testPath: /\/(blog|blogpost)\/[0-9]+\//,
|
||||
testPath: '/(blog|blogpost)',
|
||||
init: function (editor) {
|
||||
var self = this;
|
||||
self.steps = [
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
$(document).ready(function() {
|
||||
$('.js_next').click(function(event) {
|
||||
event.preventDefault();
|
||||
var translationValue = $('.cover_footer').get(0).getBoundingClientRect().top;
|
||||
newLocation = this.href;
|
||||
$('.blog_cover').addClass('page_fadeup_out');
|
||||
|
||||
$('.cover_footer')
|
||||
.addClass('page_upward')
|
||||
.css({ "transform": "translate3d(0, -"+ translationValue +"px, 0)" })
|
||||
.fadeIn(10000, newpage);
|
||||
});
|
||||
function newpage() {
|
||||
$.ajax({
|
||||
url: newLocation,
|
||||
}).done(function(data) {
|
||||
document.getElementsByTagName('html')[0].innerHTML = data;
|
||||
if (newLocation != window.location) {
|
||||
history.pushState(null, null, newLocation);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
|
@ -7,9 +7,8 @@
|
|||
<script type="text/javascript" src="/website_blog/static/src/js/website_blog.editor.js"></script>
|
||||
<script type="text/javascript" src="/website_blog/static/src/js/website.tour.blog.js"></script>
|
||||
<script type="text/javascript" src="/website_blog/static/lib/contentshare.js"></script>
|
||||
<script type="text/javascript" src="/website_blog/static/lib/page-transitions/js/app.js"></script>
|
||||
<script type="text/javascript" src="/website_blog/static/lib/inlineDisqussions/inlineDisqussions.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/website_blog/static/src/js/website_blog.js"/>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
|
@ -166,6 +165,7 @@
|
|||
<h1 class="text-center" t-field="blog_post.name"/>
|
||||
<p class="post-meta text-muted text-center" name="blog_post_data">
|
||||
<span class="fa fa-calendar oe_date"> <span t-field="blog_post.create_date"/> &nbsp;</span>
|
||||
<span>Visit <span class="badge" t-field="blog_post.counter"></span></span>
|
||||
<span t-if="len(blog_post.message_ids) > 0" class="fa fa-comment-o"> With
|
||||
<a t-attf-href="#comments">
|
||||
<t t-if="len(blog_post.message_ids) <= 1" ><t t-esc="len(blog_post.message_ids)"/> comment</t>
|
||||
|
@ -187,7 +187,7 @@
|
|||
</t>
|
||||
</div>
|
||||
|
||||
<div t-field="blog_post.content"/>
|
||||
<div id="blog_content" t-field="blog_post.content"/>
|
||||
|
||||
<section id="comments" class="container">
|
||||
<ul class="media-list" id="comments-list">
|
||||
|
@ -210,32 +210,6 @@
|
|||
</t>
|
||||
</template>
|
||||
|
||||
<template id="blog_post_cover" name="Blog Cover" inherit_option_id="website_blog.blog_post_complete">
|
||||
<xpath expr="//div[@id='title']" position="replace">
|
||||
<div class='page hidden' id="title">
|
||||
<div class='big-image'>
|
||||
<div class='inner'>
|
||||
<div class='fader'>
|
||||
<div class='text'>
|
||||
<a class='goto-next'>Read Next</a>
|
||||
<h1 class='title'></h1>
|
||||
<h2 class='description'></h2>
|
||||
<h4 class='byline'>
|
||||
<span class="author_image"/>
|
||||
<span class='author'></span>
|
||||
</h4>
|
||||
<p class="post-meta text-muted text-center" name="blog_post_data"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class='text'></div>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="blog_breadcrumb" name="Breadcrumb"
|
||||
inherit_option_id="website_blog.blog_post_complete">
|
||||
<xpath expr="//div[@id='title']" position="before">
|
||||
|
@ -256,61 +230,72 @@
|
|||
</xpath>
|
||||
</template>
|
||||
|
||||
<!--<template id="blog_background_cover" name="Blog Cover"-->
|
||||
<!-- inherit_option_id="website_blog.blog_post_complete">-->
|
||||
<!-- <xpath expr="//div[@id='title']" position="attributes">-->
|
||||
<!-- <attribute name="class">blog_cover</attribute>-->
|
||||
<!-- <attribute t-if="blog_post.content_image" name="t-attf-style">background : url('data:image/png;base64,#{blog_post.content_image}') center center no-repeat;</attribute>-->
|
||||
<!-- <attribute t-if="not blog_post.content_image" name="style">background : #34495E;</attribute>-->
|
||||
<!-- </xpath>-->
|
||||
<!-- <xpath expr="//div[@id='title']" position="inside">-->
|
||||
<!-- <div class="text-center blog_item">-->
|
||||
<!-- <img class="img-circle" t-att-src="'/website/image?model=res.partner&field=image_small&id='+str(blog_post.create_uid.id)" style="width: 50px; margin-right: 10px;"/>-->
|
||||
<!-- <small class="text-muted" id="blog_author" t-field="blog_post.create_uid.name"/>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="text-center mt64">-->
|
||||
<!-- <a href="#blog_content"><span class="fa fa-angle-down fa-2x fa-inverse"/></a>-->
|
||||
<!-- </div>-->
|
||||
<!-- </xpath>-->
|
||||
<!--</template>-->
|
||||
<!-- Options: Blog Post: Full Screen Background Image -->
|
||||
<template id="blog_post_background_cover" name="Blog Cover"
|
||||
inherit_option_id="website_blog.blog_post_complete">
|
||||
<xpath expr="//div[@id='title']" position="attributes">
|
||||
<attribute name="class">blog_cover</attribute>
|
||||
<attribute name="t-attf-style">background-image : url(data:image/jpg;base64,#{blog_post.content_image})</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//div[@id='title']" position="inside">
|
||||
<div class="text-center blog_item">
|
||||
<img class="img-circle" t-att-src="'/website/image?model=res.partner&field=image_small&id='+str(blog_post.create_uid.partner_id.id)" style="width: 30px; margin-right: 10px;"/>
|
||||
<small class="text-muted" id="blog_author" t-field="blog_post.create_uid.name"/>
|
||||
</div>
|
||||
<div class="text-center mt64">
|
||||
<a href="#blog_content"><span class="fa fa-angle-down fa-2x fa-inverse"/></a>
|
||||
</div>
|
||||
</xpath>
|
||||
<xpath expr="//section[@id='comments']" position="after">
|
||||
<div class="cover_footer" t-attf-style="background-image: url(data:image/jpg;base64,#{next_post.content_image})">
|
||||
<a class="js_next " t-attf-href="/blogpost/#{ slug(next_post) }"><p class="text-center">Read Next</p></a>
|
||||
<h1 class="text-center" t-field="next_post.name"/>
|
||||
<div class="text-center blog_item">
|
||||
<img class="img-circle" t-att-src="'/website/image?model=res.partner&field=image_small&id='+str(next_post.create_uid.partner_id.id)" style="width: 30px; margin-right: 10px;"/>
|
||||
<small class="text-muted" id="blog_author" t-field="next_post.create_uid.name"/>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<!--<template id="blog_footer" name="Blog Footer"-->
|
||||
<!-- inherit_option_id="website_blog.blog_post_complete">-->
|
||||
<!-- <xpath expr="//section[@id='comments']" position="before">-->
|
||||
<!-- <div class="container mt16 mb32">-->
|
||||
<!-- <div class="col-sm-12">-->
|
||||
<!-- <div class="col-sm-4 col-sm-offset-2">-->
|
||||
<!-- <hr class="mt0 mb0"/>-->
|
||||
<!-- <strong class="text-muted text-right">WRITTEN BY</strong>-->
|
||||
<!-- <div class="media">-->
|
||||
<!-- <a class="pull-left" href="#">-->
|
||||
<!-- <img class="img-rounded" t-att-src="'/website/image?model=res.partner&field=image_small&id='+str(blog_post.create_uid.id)" style="width: 50px; margin-right: 10px;"/>-->
|
||||
<!-- </a>-->
|
||||
<!-- <div class="media-body">-->
|
||||
<!-- <h4 class="media-heading" t-field="blog_post.create_uid.name"></h4>-->
|
||||
<!-- <p t-field="blog_post.create_uid.email"></p>-->
|
||||
<!-- <small t-if="blog_post.website_published_datetime" class="text-right text-muted">Published on <t t-esc="blog_post.website_published_datetime"/></small>-->
|
||||
<!-- <small t-if="not blog_post.website_published_datetime" class="text-right text-muted">Last Modified on <t t-esc="blog_post.write_date"/></small>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-sm-4 col-sm-offset-2" t-if="blog_post.blog_id">-->
|
||||
<!-- <hr class="mt0 mb0"/>-->
|
||||
<!-- <strong class="text-muted text-right">PUBLISHED IN</strong>-->
|
||||
<!-- <div class="media">-->
|
||||
<!-- <a class="pull-left" href="#">-->
|
||||
<!-- <img class="img-rounded" t-att-src="'/website/image?model=blog.blog&field=image&id='+str(blog_post.blog_id.id)" style="width: 50px; margin-right: 10px;"/>-->
|
||||
<!-- </a>-->
|
||||
<!-- <div class="media-body">-->
|
||||
<!-- <h4 class="media-heading" t-field="blog_post.blog_id.name"></h4>-->
|
||||
<!-- <span t-field="blog_post.blog_id.description"/>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </xpath>-->
|
||||
<!--</template>-->
|
||||
<!-- Options: Blog Post: Footer author detail -->
|
||||
<template id="blog_post_footer" name="Blog Footer"
|
||||
inherit_option_id="website_blog.blog_post_complete">
|
||||
<xpath expr="//section[@id='comments']" position="before">
|
||||
<div class="container mt16 mb32">
|
||||
<div class="col-sm-12">
|
||||
<div class="col-sm-4 col-sm-offset-2">
|
||||
<hr class="mt0 mb0"/>
|
||||
<strong class="text-muted text-right">WRITTEN BY</strong>
|
||||
<div class="media">
|
||||
<a class="pull-left" href="#">
|
||||
<img class="img-rounded" t-att-src="'/website/image?model=res.partner&field=image_small&id='+str(blog_post.create_uid.id)" style="width: 50px; margin-right: 10px;"/>
|
||||
</a>
|
||||
<div class="media-body">
|
||||
<h4 class="media-heading" t-field="blog_post.create_uid.name"></h4>
|
||||
<p t-field="blog_post.create_uid.email"></p>
|
||||
<small t-if="blog_post.website_published_datetime" class="text-right text-muted">Published on <t t-esc="blog_post.website_published_datetime"/></small>
|
||||
<small t-if="not blog_post.website_published_datetime" class="text-right text-muted">Last Modified on <t t-esc="blog_post.write_date"/></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4 col-sm-offset-2" t-if="blog_post.blog_id">
|
||||
<hr class="mt0 mb0"/>
|
||||
<strong class="text-muted text-right">PUBLISHED IN</strong>
|
||||
<div class="media">
|
||||
<a class="pull-left" href="#">
|
||||
<img class="img-rounded" t-att-src="'/website/image?model=blog.blog&field=image&id='+str(blog_post.blog_id.id)" style="width: 50px; margin-right: 10px;"/>
|
||||
</a>
|
||||
<div class="media-body">
|
||||
<h4 class="media-heading" t-field="blog_post.blog_id.name"></h4>
|
||||
<span t-field="blog_post.blog_id.description"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<!-- Options: Blog Post: user can reply -->
|
||||
<template id="opt_blog_post_complete_comment" name="Allow Comments"
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import werkzeug
|
||||
|
||||
import openerp
|
||||
from openerp import SUPERUSER_ID
|
||||
from openerp.addons.web import http
|
||||
from openerp.tools.translate import _
|
||||
from openerp.addons.web.http import request
|
||||
from openerp.addons.website_partner.controllers import main as website_partner
|
||||
import werkzeug.urls
|
||||
|
||||
class WebsiteCrmPartnerAssign(http.Controller):
|
||||
_references_per_page = 20
|
||||
|
@ -14,16 +15,25 @@ class WebsiteCrmPartnerAssign(http.Controller):
|
|||
@http.route([
|
||||
'/partners/',
|
||||
'/partners/page/<int:page>/',
|
||||
|
||||
'/partners/grade/<int:grade_id>',
|
||||
'/partners/grade/<int:grade_id>/page/<int:page>/',
|
||||
|
||||
'/partners/country/<int:country_id>',
|
||||
'/partners/country/<country_name>-<int:country_id>',
|
||||
'/partners/country/<int:country_id>/page/<int:page>/',
|
||||
'/partners/country/<country_name>-<int:country_id>/page/<int:page>/',
|
||||
|
||||
'/partners/grade/<int:grade_id>/country/<int:country_id>/',
|
||||
'/partners/grade/<int:grade_id>/country/<country_name>-<int:country_id>',
|
||||
'/partners/grade/<int:grade_id>/country/<int:country_id>/page/<int:page>/',
|
||||
'/partners/grade/<int:grade_id>/country/<country_name>-<int:country_id>/page/<int:page>/',
|
||||
|
||||
], type='http', auth="public", website=True, multilang=True)
|
||||
def partners(self, country_id=0, page=0, **post):
|
||||
def partners(self, country_id=0, grade_id=0, page=0, **post):
|
||||
country_obj = request.registry['res.country']
|
||||
partner_obj = request.registry['res.partner']
|
||||
post_name = post.get('search', '')
|
||||
grade_id = post.get('grade', '')
|
||||
country = None
|
||||
|
||||
# format displayed membership lines domain
|
||||
|
@ -83,7 +93,7 @@ class WebsiteCrmPartnerAssign(http.Controller):
|
|||
context=request.context, count=True)
|
||||
grades.insert(0, {
|
||||
'grade_id_count': grades_partners,
|
||||
'grade_id': ("all", _("All Levels"))
|
||||
'grade_id': (0, _("All Categories"))
|
||||
})
|
||||
|
||||
values = {
|
||||
|
|
|
@ -35,13 +35,27 @@
|
|||
Contact a reseller
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 mb32" id="partner_left">
|
||||
<h3>Resellers by Country</h3>
|
||||
|
||||
<ul class="nav nav-pills nav-stacked mt16">
|
||||
<li class="nav-header"><h3>Categories</h3></li>
|
||||
<t t-foreach="grades" t-as="grade">
|
||||
<li t-if="grade['grade_id']" t-att-class="grade['grade_id'][0] == grade_id and 'active' or ''">
|
||||
<a t-attf-href="#{ grade['grade_id'][0] and '/partners/grade/%s' % grade['grade_id'][0] or '/partners' }#{ current_country_id and ('/country/%s' % current_country_id) or '' }#{ search_path }">
|
||||
<span class="badge pull-right" t-esc="grade['grade_id_count'] or ''"/>
|
||||
<t t-esc="grade['grade_id'][1]"/>
|
||||
</a>
|
||||
</li>
|
||||
</t>
|
||||
</ul>
|
||||
|
||||
<ul id="reseller_countries" class="nav nav-pills nav-stacked mt16">
|
||||
<li class="nav-header"><h3>Locations</h3></li>
|
||||
<t t-foreach="countries" t-as="country_dict">
|
||||
<t t-if="country_dict['country_id']">
|
||||
<li t-att-class="country_dict['country_id'][0] == current_country_id and 'active' or ''">
|
||||
<a t-attf-href="#{ country_dict['country_id'][0] and '/partners/country/%s' % slug(country_dict['country_id']) or '/partners/' }#{ search_path }">
|
||||
<a t-attf-href="#{ country_dict['country_id'][0] and ('/partners/country/%s' % slug(country_dict['country_id'])) or '/partners/' }#{ search_path }">
|
||||
<span class="badge pull-right" t-esc="country_dict['country_id_count'] or ''"/>
|
||||
<t t-esc="country_dict['country_id'][1]"/>
|
||||
</a>
|
||||
|
@ -49,7 +63,9 @@
|
|||
</t>
|
||||
</t>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-8" id="ref_content">
|
||||
<div class='navbar'>
|
||||
<div>
|
||||
|
@ -60,17 +76,7 @@
|
|||
<div class="form-group">
|
||||
<input type="text" name="search" class="search-query col-md-2 mt4 form-control" placeholder="Search" t-att-value="searches.get('search', '')"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<select class="search-query col-md-2 mt4 form-control" name="grade" t-if="len(grades) > 1" onchange="submit()">
|
||||
<t t-foreach="grades">
|
||||
<t t-if="grade_id">
|
||||
<option t-att-selected="searches.get('grade') == str(grade_id and grade_id[0]) and 'selected'" t-att-value="grade_id[0]">
|
||||
<t t-esc="grade_id[1]"/> (<t t-esc="grade_id_count"/>)
|
||||
</option>
|
||||
</t>
|
||||
</t>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -103,7 +109,7 @@
|
|||
</template>
|
||||
|
||||
<template id="ref_country" inherit_id="website_crm_partner_assign.index" inherit_option_id="website_crm_partner_assign.index" name="Left World Map">
|
||||
<xpath expr="//div[@id='partner_left']//ul" position="after">
|
||||
<xpath expr="//ul[@id='reseller_countries']" position="after">
|
||||
<h3>World Map</h3>
|
||||
<ul class="nav">
|
||||
<iframe t-attf-src="/google_map/?width=320&height=240&partner_ids=#{ google_map_partner_ids }&partner_url=/partners/"
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
website.EventTour = website.Tour.extend({
|
||||
id: 'event',
|
||||
name: "Create an event",
|
||||
testPath: /\/event\/[0-9]+\/register/,
|
||||
testPath: '/event(/[0-9]+/register)?',
|
||||
init: function (editor) {
|
||||
var self = this;
|
||||
self.steps = [
|
||||
|
|
|
@ -11,7 +11,7 @@ testRunner.run(function eventTest (page, timeout) {
|
|||
});
|
||||
}, function executeTest () {
|
||||
page.evaluate(function () {
|
||||
window.openerp.website.Tour.run_test('event');
|
||||
window.openerp.website.Tour.get('event').run(true);
|
||||
});
|
||||
}, timeout);
|
||||
});
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<record id="action_open_website" model="ir.actions.act_url">
|
||||
<field name="name">Website Shop</field>
|
||||
<field name="target">self</field>
|
||||
<field name="url">/shop?tutorial.shop=true</field>
|
||||
<field name="url">/shop#tutorial.shop=true</field>
|
||||
</record>
|
||||
<record id="base.open_menu" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_open_website"/>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row">
|
||||
<h2 class="oe_slogan">Create Awsome Product Pages</h2>
|
||||
<h2 class="oe_slogan">Create Awesome Product Pages</h2>
|
||||
<h3 class="oe_slogan">Get rid of old WYSIWYG editors</h3>
|
||||
<div class="oe_span6">
|
||||
<p class='oe_mt32'>
|
||||
|
@ -295,7 +295,7 @@
|
|||
|
||||
<section class="oe_container">
|
||||
<div class="oe_row">
|
||||
<h2 class="oe_slogan">Fully Integrated With Others Apps</h2>
|
||||
<h2 class="oe_slogan">Fully Integrated With Other Apps</h2>
|
||||
<h3 class="oe_slogan">Get hundreds of open source apps for free</h3>
|
||||
<div class="oe_span4">
|
||||
<a href="/apps/website">
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
website.EditorShopTour = website.Tour.extend({
|
||||
id: 'shop',
|
||||
name: "Create a product",
|
||||
testPath: /\/shop\/.*/,
|
||||
testPath: '/shop',
|
||||
init: function (editor) {
|
||||
var self = this;
|
||||
self.steps = [
|
||||
|
@ -145,7 +145,7 @@
|
|||
id: 'shop_buy_product',
|
||||
name: "Try to buy products",
|
||||
path: '/shop',
|
||||
testPath: /\/shop/,
|
||||
testPath: '/shop',
|
||||
init: function (editor) {
|
||||
var self = this;
|
||||
self.steps = [
|
||||
|
@ -216,11 +216,7 @@
|
|||
},
|
||||
},
|
||||
{
|
||||
title: "select acquirer",
|
||||
element: 'input[name="acquirer"]',
|
||||
},
|
||||
{
|
||||
title: "confirm",
|
||||
title: "Pay Now",
|
||||
element: 'button:contains("Pay Now")',
|
||||
},
|
||||
{
|
||||
|
|
|
@ -26,11 +26,12 @@ $(document).ready(function () {
|
|||
if (isNaN(value)) value = 0;
|
||||
openerp.jsonRpc("/shop/set_cart_json/", 'call', {'order_line_id': $input.data('id'), 'set_number': value})
|
||||
.then(function (data) {
|
||||
if (!data) {
|
||||
location.reload();
|
||||
return;
|
||||
}
|
||||
set_my_cart_quantity(data[1]);
|
||||
$input.val(data[0]);
|
||||
if (!data[0]) {
|
||||
location.reload();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import openerp.addons.website.tests.test_ui as test_ui
|
|||
|
||||
def load_tests(loader, base, _):
|
||||
base.addTest(test_ui.WebsiteUiSuite(test_ui.full_path(__file__,'website_sale-sale_process-test.js'),
|
||||
{'redirect': '/page/website.homepage'}))
|
||||
{'redirect': '/page/website.homepage'}, 120))
|
||||
base.addTest(test_ui.WebsiteUiSuite(test_ui.full_path(__file__,'website_sale-sale_process-test-2.js'),
|
||||
{'redirect': '/page/website.homepage'}))
|
||||
return base
|
|
@ -530,7 +530,7 @@
|
|||
<a t-if="website_sale_order and website_sale_order.website_order_line" href="/shop/checkout/" class="btn btn-primary pull-right mb32">Process Checkout <span class="fa fa-long-arrow-right"/></a>
|
||||
<div class="oe_structure"/>
|
||||
</div>
|
||||
<div class="col-lg-3 col-lg-offset-1 col-sm-3 text-muted" id="right_column">
|
||||
<div class="col-lg-3 col-lg-offset-1 col-sm-3 col-md-3 text-muted" id="right_column">
|
||||
<h4>Policies</h4>
|
||||
<ul class="list-unstyled mb32">
|
||||
<li>☑ 30-days money-back guarantee</li>
|
||||
|
@ -828,7 +828,7 @@
|
|||
</div>
|
||||
<button type="submit" class="btn btn-default btn-primary pull-right mb32">Confirm <span class="fa fa-long-arrow-right"/></button>
|
||||
</div>
|
||||
<div class="col-lg-offset-1 col-lg-3 text-muted">
|
||||
<div class="col-lg-offset-1 col-lg-3 col-md-3 text-muted">
|
||||
<h3 class="page-header mt16">Your Order <small><a href="/shop/mycart"><span class="fa fa-arrow-right"/> change</a></small></h3>
|
||||
<div class="row">
|
||||
<div class="col-sm-6 text-right">Subtotal:</div>
|
||||
|
|