Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Kunto
/
backoffice
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit a0efbbb9
authored
Jan 17, 2020
by
yasir
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
InsyaAllah selesai
1 parent
6203408b
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
139 additions
and
39 deletions
src/agratek/api/merchant/scripts/data/routes.csv
src/agratek/api/merchant/views/pay.py
src/agratek/api/merchant/views/pay_info.py
src/agratek/api/merchant/views/pay_request.py
src/agratek/api/merchant/views/pay_request_resp.py
src/agratek/api/merchant/views/tangkap_response.py
src/agratek/api/merchant/views/templates/pay.pt
src/agratek/api/merchant/views/templates/pay_info.pt
src/agratek/api/merchant/views/templates/pay_info_fail.pt
src/agratek/api/merchant/views/templates/pay_request.pt
src/agratek/api/merchant/scripts/data/routes.csv
View file @
a0efbbb
...
@@ -89,6 +89,7 @@ test-postpaid-inquiry,/api/test/postpaid/inquiry,API TEST INQUIRY POSTPAUD,1,0
...
@@ -89,6 +89,7 @@ test-postpaid-inquiry,/api/test/postpaid/inquiry,API TEST INQUIRY POSTPAUD,1,0
api-vsi,/api/vsi,'API VSI,1,0
api-vsi,/api/vsi,'API VSI,1,0
pay-form,/pay/{pay_token},Metode Pembayaran,1,0
pay-form,/pay/{pay_token},Metode Pembayaran,1,0
pay-info,/pay_info/{pay_token}/{
meth}
,Informasi Pembayaran,1,0
pay-info,/pay_info/{pay_token}/{
state}/
,Informasi Pembayaran,1,0
pay-request,/pay_request,Pembayaran,1,0
pay-request,/pay_request,Pembayaran,1,0
pay-request-resp,/pay_request_resp,Respon Request Pembayaran,1,0
pay-request-resp,/pay_request_resp,Respon Request Pembayaran,1,0
tangkap-response,/tangkap_response,tes_dong,1,0
\ No newline at end of file
\ No newline at end of file
src/agratek/api/merchant/views/pay.py
View file @
a0efbbb
This diff is collapsed.
Click to expand it.
src/agratek/api/merchant/views/pay_info.py
View file @
a0efbbb
...
@@ -9,15 +9,32 @@ from ..pay_request_tools import methods, vacs, cvss, loans, cps, ems, get_str_ha
...
@@ -9,15 +9,32 @@ from ..pay_request_tools import methods, vacs, cvss, loans, cps, ems, get_str_ha
class
view_pay
(
BaseView
):
class
view_pay
(
BaseView
):
@view_config
(
route_name
=
'pay-info'
,
renderer
=
'templates/pay_info.pt'
)
#permission = 'pay-form',
@view_config
(
route_name
=
'pay-info'
,
renderer
=
'templates/pay_info.pt'
)
#permission = 'pay-form',
@view_config
(
route_name
=
'pay-info'
,
renderer
=
'templates/pay_info_fail.pt'
,
request_param
=
'adt=fail'
)
#permission = 'pay-form',
def
the_form
(
self
):
def
the_form
(
self
):
request
=
self
.
req
request
=
self
.
req
session
=
self
.
ses
session
=
self
.
ses
url_dict
=
request
.
matchdict
url_dict
=
request
.
matchdict
meth
=
url_dict
[
'meth
'
]
state
=
url_dict
[
'state
'
]
amount
=
0
,
dt_tm_str
=
''
,
img_src
=
''
,
meth_str
=
''
,
subject
=
''
,
content
=
''
,
response_url
=
''
# bringback_url = bringback_url
if
state
==
'0'
:
pay_token
=
url_dict
[
'pay_token'
]
pay_token
=
url_dict
[
'pay_token'
]
row_pay
=
PartnerPay
.
query
()
.
filter
(
PartnerPay
.
token_pay_req
==
pay_token
)
.
first
()
row_pay
=
PartnerPay
.
query
()
.
filter
(
PartnerPay
.
token_pay_req
==
pay_token
)
.
first
()
meth
=
row_pay
.
pay_req_mth
if
meth
==
'VA'
:
if
meth
==
'VA'
:
subject
=
'No. Virtual Account'
subject
=
'No. Virtual Account'
...
@@ -43,7 +60,7 @@ class view_pay(BaseView):
...
@@ -43,7 +60,7 @@ class view_pay(BaseView):
meth
=
row_pay
.
pay_req_mth
meth
=
row_pay
.
pay_req_mth
meth_str
=
dict
(
methods
)[
meth
]
+
', '
+
dict
(
vacs
)[
denom_str
]
meth_str
=
dict
(
methods
)[
meth
]
+
', '
+
dict
(
vacs
)[
denom_str
]
bringback_url
=
row_pay
.
bringback
_url
response_url
=
row_pay
.
response
_url
elif
meth
==
'CC'
:
elif
meth
==
'CC'
:
...
@@ -63,6 +80,7 @@ class view_pay(BaseView):
...
@@ -63,6 +80,7 @@ class view_pay(BaseView):
return
dict
(
return
dict
(
state
=
state
,
amount
=
amount
,
amount
=
amount
,
dt_tm_str
=
dt_tm_str
,
dt_tm_str
=
dt_tm_str
,
...
@@ -73,5 +91,5 @@ class view_pay(BaseView):
...
@@ -73,5 +91,5 @@ class view_pay(BaseView):
subject
=
subject
,
subject
=
subject
,
content
=
content
,
content
=
content
,
bringback_url
=
bringback
_url
response_url
=
response
_url
)
)
\ No newline at end of file
\ No newline at end of file
src/agratek/api/merchant/views/pay_request.py
View file @
a0efbbb
...
@@ -67,6 +67,7 @@ class ParamsSchema(colander.Schema):
...
@@ -67,6 +67,7 @@ class ParamsSchema(colander.Schema):
currency
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Mata Uang "
,
widget
=
widget
.
HiddenWidget
(
readonly
=
True
))
currency
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Mata Uang "
,
widget
=
widget
.
HiddenWidget
(
readonly
=
True
))
amount
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Total Bayar"
)
amount
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Total Bayar"
)
invoice_no
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nomor Invoice"
)
invoice_no
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nomor Invoice"
)
response_url
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Response URL"
)
description
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Deskripsi Transaksi"
,
missing
=
colander
.
drop
)
description
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Deskripsi Transaksi"
,
missing
=
colander
.
drop
)
fee
=
colander
.
SchemaNode
(
colander
.
Integer
(),
title
=
"Fee"
)
fee
=
colander
.
SchemaNode
(
colander
.
Integer
(),
title
=
"Fee"
)
vat
=
colander
.
SchemaNode
(
colander
.
Integer
(),
title
=
"VAT"
)
vat
=
colander
.
SchemaNode
(
colander
.
Integer
(),
title
=
"VAT"
)
...
@@ -114,6 +115,8 @@ class ItemsSchema(colander.Schema):
...
@@ -114,6 +115,8 @@ class ItemsSchema(colander.Schema):
goods_name
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama Produk"
)
goods_name
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama Produk"
)
goods_detail
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Detail"
)
goods_detail
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Detail"
)
goods_amt
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Harga"
)
goods_amt
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Harga"
)
qty
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Qty"
)
subtotal
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Subtotal"
)
class
CartSchema
(
colander
.
Schema
):
class
CartSchema
(
colander
.
Schema
):
count
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Jumlah"
,
oid
=
"count"
)
count
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Jumlah"
,
oid
=
"count"
)
...
@@ -192,6 +195,8 @@ class view_pay(BaseView):
...
@@ -192,6 +195,8 @@ class view_pay(BaseView):
goods_name
=
items
[
key
],
goods_name
=
items
[
key
],
goods_detail
=
items
[
'goods_detail-'
+
uniq
],
goods_detail
=
items
[
'goods_detail-'
+
uniq
],
goods_amt
=
items
[
'goods_amt-'
+
uniq
],
goods_amt
=
items
[
'goods_amt-'
+
uniq
],
qty
=
items
[
'qty-'
+
uniq
],
subtotal
=
items
[
'subtotal-'
+
uniq
]
)
)
produks
.
append
(
produk
)
produks
.
append
(
produk
)
...
@@ -227,6 +232,7 @@ class view_pay(BaseView):
...
@@ -227,6 +232,7 @@ class view_pay(BaseView):
"method"
:
"pay_request"
,
"method"
:
"pay_request"
,
"params"
:
{
"params"
:
{
"data"
:
{
"data"
:
{
"response_url"
:
items
[
'response_url'
],
"time_stamp"
:
time_stamp
,
"time_stamp"
:
time_stamp
,
"currency"
:
"IDR"
,
"currency"
:
"IDR"
,
"amount"
:
items
[
'amount'
],
"amount"
:
items
[
'amount'
],
...
...
src/agratek/api/merchant/views/pay_request_resp.py
View file @
a0efbbb
...
@@ -20,9 +20,6 @@ log = logging.getLogger(__name__)
...
@@ -20,9 +20,6 @@ log = logging.getLogger(__name__)
def
encode_form_to_json
(
form_request_data
,
parsed_produks
):
def
encode_form_to_json
(
form_request_data
,
parsed_produks
):
decoded_dict
=
{}
decoded_dict
=
{}
print
(
'isi form_request_data dalam encode_to_json >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'
)
print
(
form_request_data
)
customer_req
=
{}
customer_req
=
{}
deliver_to
=
{}
deliver_to
=
{}
server
=
{}
server
=
{}
...
@@ -75,14 +72,14 @@ def added_register_values(current_register_values, dat):
...
@@ -75,14 +72,14 @@ def added_register_values(current_register_values, dat):
added_dict
[
'biller_state'
]
=
dat
[
'biller'
][
'state'
]
added_dict
[
'biller_state'
]
=
dat
[
'biller'
][
'state'
]
added_dict
[
'biller_post_code'
]
=
dat
[
'biller'
][
'post_code'
]
added_dict
[
'biller_post_code'
]
=
dat
[
'biller'
][
'post_code'
]
added_dict
[
'biller_country'
]
=
dat
[
'biller'
][
'country'
]
added_dict
[
'biller_country'
]
=
dat
[
'biller'
][
'country'
]
added_dict
[
'
bringback_url'
]
=
dat
[
'bringback
_url'
]
added_dict
[
'
response_url'
]
=
dat
[
'response
_url'
]
return
added_dict
return
added_dict
@jsonrpc_method
(
method
=
'pay_request'
,
endpoint
=
'api-merchant'
)
@jsonrpc_method
(
method
=
'pay_request'
,
endpoint
=
'api-merchant'
)
def
pay_request
(
request
,
data
,
**
kwargs
):
def
pay_request
(
request
,
data
,
**
kwargs
):
#
user = auth_from_rpc(request)
user
=
auth_from_rpc
(
request
)
user
=
DBSession
.
query
(
User
)
.
filter
(
User
.
id
==
1
)
.
first
()
#
user = DBSession.query(User).filter(User.id == 1).first()
i
=
0
i
=
0
print
(
'masuk sini loh >>>>>>>>>>>>>>>>>>>>>>>>>>>'
)
print
(
'masuk sini loh >>>>>>>>>>>>>>>>>>>>>>>>>>>'
)
if
not
data
:
if
not
data
:
...
@@ -120,7 +117,7 @@ def pay_request(request, data, **kwargs):
...
@@ -120,7 +117,7 @@ def pay_request(request, data, **kwargs):
r_data
[
"status"
]
=
"SUCCESS"
r_data
[
"status"
]
=
"SUCCESS"
r_data
[
"message"
]
=
"Data tersimpan silahkan lanjutkan pembayaran"
r_data
[
"message"
]
=
"Data tersimpan silahkan lanjutkan pembayaran"
r_data
[
'code'
]
=
1
r_data
[
'code'
]
=
0
r_data
[
'pay_token'
]
=
ar_invoice
.
token_pay_req
r_data
[
'pay_token'
]
=
ar_invoice
.
token_pay_req
r_data
[
'pay_url'
]
=
request
.
_host
+
'/pay/'
+
ar_invoice
.
token_pay_req
r_data
[
'pay_url'
]
=
request
.
_host
+
'/pay/'
+
ar_invoice
.
token_pay_req
...
...
src/agratek/api/merchant/views/tangkap_response.py
0 → 100644
View file @
a0efbbb
from
opensipkd.base.views
import
BaseView
from
pyramid.view
import
view_config
class
view_pay
(
BaseView
):
@view_config
(
route_name
=
'tangkap-response'
,
renderer
=
'json'
)
#permission = 'pay-form',
def
view
(
self
):
request
=
self
.
req
session
=
self
.
ses
url_dict
=
request
.
matchdict
print
(
'masuk masuk >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'
)
print
(
request
.
json_body
)
\ No newline at end of file
\ No newline at end of file
src/agratek/api/merchant/views/templates/pay.pt
View file @
a0efbbb
...
@@ -275,20 +275,12 @@ td, th {
...
@@ -275,20 +275,12 @@ td, th {
</select>
</select>
<p
id=
"error-${fieldItem.oid}"
class=
"help-block"
tal:condition=
"fieldItem.error"
tal:repeat=
"error fieldItem.error.messages()"
>
${error}
</p>
<p
id=
"error-${fieldItem.oid}"
class=
"help-block"
tal:condition=
"fieldItem.error"
tal:repeat=
"error fieldItem.error.messages()"
>
${error}
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div
id=
"bt_box"
class=
"col-md-12"
style=
"text-align: right;"
>
<div
id=
"bt_box"
class=
"col-md-12"
style=
"text-align: center;"
>
<button
style=
"margin: 0px;"
class=
"btn btn-success col-md-5 col-xs-5 col-sm-5 pull-left"
type=
"submit"
name=
"bayar"
id=
"bt_bayar"
>
Bayar
</button>
<button
style=
"margin: 0px; width: 100%;"
class=
"btn btn-success"
type=
"submit"
name=
"bayar"
id=
"bt_bayar"
>
Bayar
</button>
<button
style=
"margin: 0px;"
class=
"btn btn-warning col-md-5 col-xs-5 col-sm-5 pull-right"
type=
"submit"
name=
"batal_bayar"
id=
"bt_batal_bayar"
>
Batal
</button>
</div>
</div>
</form>
</form>
<!-- End Template Form -->
<!-- End Template Form -->
<!-- </div> -->
<!-- </div> -->
...
...
src/agratek/api/merchant/views/templates/pay_info.pt
View file @
a0efbbb
...
@@ -80,9 +80,6 @@ td, th {
...
@@ -80,9 +80,6 @@ td, th {
<hr
class=
"col-sm-12 col-md-12 col-xs-12"
>
<hr
class=
"col-sm-12 col-md-12 col-xs-12"
>
<label
style=
"font-weight: normal;"
class=
"col-md-12 col-xs-12 col-sm-12"
>
${subject}
</label>
<label
style=
"font-weight: normal;"
class=
"col-md-12 col-xs-12 col-sm-12"
>
${subject}
</label>
<label
style=
"font-weight: bolder;"
class=
"col-md-12 col-xs-12 col-sm-12"
>
${content}
</label>
<label
style=
"font-weight: bolder;"
class=
"col-md-12 col-xs-12 col-sm-12"
>
${content}
</label>
<div
id=
"bt_box"
class=
"col-md-12 col-xs-12 col-sm-12"
style=
"padding: 0px; text-align: center; margin-bottom: 10px;"
>
<button
id=
"btn_tutup"
class=
"btn btn-warning"
style=
"margin: 0px; width: 90%;"
type=
"button"
>
Tutup
</button>
</div>
</div>
</div>
</div>
</div>
...
@@ -102,9 +99,6 @@ td, th {
...
@@ -102,9 +99,6 @@ td, th {
<script>
<script>
$
(
document
).
ready
(
function
()
{
$
(
document
).
ready
(
function
()
{
$
(
'#btn_tutup'
).
click
(
function
(){
window
.
open
(
'${bringback_url}'
,
'_self'
);
})
})
})
</script>
</script>
...
...
src/agratek/api/merchant/views/templates/pay_info_fail.pt
0 → 100644
View file @
a0efbbb
<html
metal:use-macro=
"load: opensipkd.base:views/templates/base3-clean.pt"
>
<div
metal:fill-slot=
"content"
>
<style>
button
{
margin
:
0px
3px
;
}
#main
{
min-height
:
1px
;
padding-bottom
:
1px
;}
hr
{
display
:
block
;
margin-top
:
0px
;
margin-bottom
:
5px
;
margin-left
:
auto
;
margin-right
:
auto
;
/*border-style: inset;*/
/*border-width: 0.2px;*/
}
table
{
font-family
:
arial
,
sans-serif
;
border-collapse
:
collapse
;
width
:
100%
;
}
td
,
th
{
border
:
1px
solid
#dddddd
;
text-align
:
left
;
padding
:
8px
;
}
.control-label
{
text-align
:
left
!important
;
}
</style>
</div>
<div
metal:fill-slot=
"scripts"
>
<div
class=
"panel-body col-md-12"
>
<div
class=
"col-md-6 col-md-offset-3 col-xs-12 well"
style=
"padding: 0px;"
>
<!-- Proses Template Form -->
<div
style=
"height: 300px; text-align: center;"
class=
"col-xs-12 col-md-12 col-sm-12"
>
<label
style=
"color: indianred; padding-top: 140px; display: block; font-weight: bold;"
>
Terjadi Kesalahan Sistem, Gagal melakukan transaksi.
</label>
<label
style=
"color: indianred; padding-top: 5px; display: block; font-weight: bold;"
>
Code : ${state}
</label>
</div>
<!-- End Template Form -->
<!-- </div> -->
</div>
</div>
<script>
$
(
document
).
ready
(
function
()
{
})
</script>
</div>
</html>
src/agratek/api/merchant/views/templates/pay_request.pt
View file @
a0efbbb
...
@@ -334,20 +334,12 @@
...
@@ -334,20 +334,12 @@
`<div class="col-md-12" id="pack-`
+
cnt
+
`">`
+
`<div class="col-md-12" id="pack-`
+
cnt
+
`">`
+
`<legend id="judul"></legend>`
+
`<legend id="judul"></legend>`
+
`<button type="button" onclick="removeItem('pack-`
+
cnt
+
`')">Hapus</button> `
+
`<button type="button" onclick="removeItem('pack-`
+
cnt
+
`')">Hapus</button> `
+
`<div tal:define="fieldItem formItemCart['img_url']" id="item-
${
fieldItem
.
oid
}
">`
+
`<div class="col-md-8">`
+
`<input type="text" name="
${
fieldItem
.
name
}
-`
+
cnt
+
`" value="" id="
${
fieldItem
.
name
}
-`
+
cnt
+
`">`
+
`</div>`
+
`</div>`
+
`<br></br>`
+
`<br></br>`
+
`<div tal:define="fieldItem formItemCart['goods_name']" id="item-
${
fieldItem
.
oid
}
">`
+
`<div tal:define="fieldItem formItemCart['goods_name']" id="item-
${
fieldItem
.
oid
}
">`
+
`<label for="
${
fieldItem
.
oid
}
" class="control-label col-md-4 required" id="req-
${
fieldItem
.
oid
}
">`
+
`<label for="
${
fieldItem
.
oid
}
" class="control-label col-md-4 required" id="req-
${
fieldItem
.
oid
}
">`
+
`
${
fieldItem
.
title
}
</label>`
+
`
${
fieldItem
.
title
}
</label>`
+
`<div class="col-md-8">`
+
`<div class="col-md-8">`
+
`<select class="form-control" name="
${
fieldItem
.
name
}
-`
+
cnt
+
`" id="
${
fieldItem
.
name
}
-`
+
cnt
+
`" required="required">`
+
`<input type="text" class="form-control" id="
${
fieldItem
.
name
}
-`
+
cnt
+
`" name="
${
fieldItem
.
name
}
-`
+
cnt
+
`" value="" >`
+
`<option disabled selected value> -- pilih produk -- </option>`
+
`<option tal:repeat="item produks" value="
${
item
[
1
]}
">
${
item
[
1
]}
</option>`
+
`</select>`
+
`<p id="error-
${
fieldItem
.
oid
}
" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">
${
error
}
</p>`
+
`<p id="error-
${
fieldItem
.
oid
}
" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">
${
error
}
</p>`
+
`</div>`
+
`</div>`
+
`</div>`
+
`</div>`
+
...
@@ -356,7 +348,7 @@
...
@@ -356,7 +348,7 @@
`<label for="
${
fieldItem
.
oid
}
" class="control-label col-md-4" id="req-
${
fieldItem
.
oid
}
">`
+
`<label for="
${
fieldItem
.
oid
}
" class="control-label col-md-4" id="req-
${
fieldItem
.
oid
}
">`
+
`
${
fieldItem
.
title
}
</label>`
+
`
${
fieldItem
.
title
}
</label>`
+
`<div class="col-md-8">`
+
`<div class="col-md-8">`
+
`<input type="text" class="form-control" id="
${
fieldItem
.
name
}
-`
+
cnt
+
`" name="
${
fieldItem
.
name
}
-`
+
cnt
+
`" value=""
readonly=""
>`
+
`<input type="text" class="form-control" id="
${
fieldItem
.
name
}
-`
+
cnt
+
`" name="
${
fieldItem
.
name
}
-`
+
cnt
+
`" value="" >`
+
`<p id="error-
${
fieldItem
.
oid
}
" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">
${
error
}
</p>`
+
`<p id="error-
${
fieldItem
.
oid
}
" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">
${
error
}
</p>`
+
`</div>`
+
`</div>`
+
`</div>`
+
`</div>`
+
...
@@ -364,8 +356,33 @@
...
@@ -364,8 +356,33 @@
`<div tal:define="fieldItem formItemCart['goods_amt']" id="item-
${
fieldItem
.
oid
}
">`
+
`<div tal:define="fieldItem formItemCart['goods_amt']" id="item-
${
fieldItem
.
oid
}
">`
+
`<label for="
${
fieldItem
.
oid
}
" class="control-label col-md-4" id="req-
${
fieldItem
.
oid
}
">`
+
`<label for="
${
fieldItem
.
oid
}
" class="control-label col-md-4" id="req-
${
fieldItem
.
oid
}
">`
+
`
${
fieldItem
.
title
}
</label>`
+
`
${
fieldItem
.
title
}
</label>`
+
`<div class="col-md-8" style="width: 150px;">`
+
`<div class="col-md-8" >`
+
`<input type="text" class="form-control" id="
${
fieldItem
.
name
}
-`
+
cnt
+
`" name="
${
fieldItem
.
name
}
-`
+
cnt
+
`" value="" readonly="">`
+
`<input type="text" class="form-control" id="
${
fieldItem
.
name
}
-`
+
cnt
+
`" name="
${
fieldItem
.
name
}
-`
+
cnt
+
`" value="" >`
+
`<p id="error-
${
fieldItem
.
oid
}
" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">
${
error
}
</p>`
+
`</div>`
+
`</div>`
+
`<br></br>`
+
`<div tal:define="fieldItem formItemCart['img_url']" id="item-
${
fieldItem
.
oid
}
">`
+
`<label for="
${
fieldItem
.
oid
}
" class="control-label col-md-4" id="req-
${
fieldItem
.
oid
}
">`
+
`
${
fieldItem
.
title
}
</label>`
+
`<div class="col-md-8" >`
+
`<input type="text" class="form-control" id="
${
fieldItem
.
name
}
-`
+
cnt
+
`" name="
${
fieldItem
.
name
}
-`
+
cnt
+
`" value="" >`
+
`<p id="error-
${
fieldItem
.
oid
}
" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">
${
error
}
</p>`
+
`</div>`
+
`</div>`
+
`<div tal:define="fieldItem formItemCart['qty']" id="item-
${
fieldItem
.
oid
}
">`
+
`<label for="
${
fieldItem
.
oid
}
" class="control-label col-md-4" id="req-
${
fieldItem
.
oid
}
">`
+
`
${
fieldItem
.
title
}
</label>`
+
`<div class="col-md-8" >`
+
`<input type="text" class="form-control" id="
${
fieldItem
.
name
}
-`
+
cnt
+
`" name="
${
fieldItem
.
name
}
-`
+
cnt
+
`" value="" >`
+
`<p id="error-
${
fieldItem
.
oid
}
" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">
${
error
}
</p>`
+
`</div>`
+
`</div>`
+
`<div tal:define="fieldItem formItemCart['subtotal']" id="item-
${
fieldItem
.
oid
}
">`
+
`<label for="
${
fieldItem
.
oid
}
" class="control-label col-md-4" id="req-
${
fieldItem
.
oid
}
">`
+
`
${
fieldItem
.
title
}
</label>`
+
`<div class="col-md-8" >`
+
`<input type="text" class="form-control" id="
${
fieldItem
.
name
}
-`
+
cnt
+
`" name="
${
fieldItem
.
name
}
-`
+
cnt
+
`" value="" >`
+
`<p id="error-
${
fieldItem
.
oid
}
" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">
${
error
}
</p>`
+
`<p id="error-
${
fieldItem
.
oid
}
" class="help-block" tal:condition="fieldItem.error" tal:repeat="error fieldItem.error.messages()">
${
error
}
</p>`
+
`</div>`
+
`</div>`
+
`</div>`
+
`</div>`
+
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment