Commit e785091e by taufikyu

revisi qrcode, halaman skrd, detail rekening

1 parent bc8dec58
No preview for this file type
...@@ -237,4 +237,5 @@ id,kode,nama,path,factory,perm_name,disabled,created,updated,create_uid ...@@ -237,4 +237,5 @@ id,kode,nama,path,factory,perm_name,disabled,created,updated,create_uid
252,"anggaran-csv","CSV Anggaran","/anggaran/{csv}/csv",,"read",0,"2015-03-08 16:45:45",,1 252,"anggaran-csv","CSV Anggaran","/anggaran/{csv}/csv",,"read",0,"2015-03-08 16:45:45",,1
253,"anggaran-pdf","PDF Anggaran","/anggaran/{pdf}/pdf",,"read",0,"2015-03-08 16:45:45",,1 253,"anggaran-pdf","PDF Anggaran","/anggaran/{pdf}/pdf",,"read",0,"2015-03-08 16:45:45",,1
254,"arinvoice-ws","Invoice WS","/arinvoicews",,"read",0,"2020-09-18 16:45:45",,1 254,"arinvoice-ws","Invoice WS","/arinvoicews",,"read",0,"2020-09-18 16:45:45",,1
255,"arinvoice-ws-act","Invoice WS Act","/arinvoicews/{act}/act",,"read",0,"2020-09-18 16:45:45",,1
\ No newline at end of file \ No newline at end of file
255,"arinvoice-ws-act","Invoice WS","/arinvoicews/{act}/act",,"read",0,"2020-09-18 16:45:45",,1
255,"public-act","Public","/public/{act}",,"read",0,"2020-09-18 16:45:45",,1
\ No newline at end of file \ No newline at end of file
...@@ -680,4 +680,26 @@ def terbilang(bil): ...@@ -680,4 +680,26 @@ def terbilang(bil):
hasil = terbilang(n / 1000000) + " Juta" + terbilang(n % 1000000) hasil = terbilang(n / 1000000) + " Juta" + terbilang(n % 1000000)
else: else:
hasil = terbilang(n / 1000000000) + " Miliar" + terbilang(n % 1000000000) hasil = terbilang(n / 1000000000) + " Miliar" + terbilang(n % 1000000000)
return hasil
\ No newline at end of file \ No newline at end of file
return hasil
def int_to_roman(num):
val = [
1000, 900, 500, 400,
100, 90, 50, 40,
10, 9, 5, 4,
1
]
syb = [
"M", "CM", "D", "CD",
"C", "XC", "L", "XL",
"X", "IX", "V", "IV",
"I"
]
roman_num = ''
i = 0
while num > 0:
for _ in range(num // val[i]):
roman_num += syb[i]
num -= val[i]
i += 1
return roman_num
\ No newline at end of file \ No newline at end of file
...@@ -7,7 +7,7 @@ from pyramid.view import view_config ...@@ -7,7 +7,7 @@ from pyramid.view import view_config
from pyramid.httpexceptions import (HTTPFound, HTTPForbidden, HTTPNotFound) from pyramid.httpexceptions import (HTTPFound, HTTPForbidden, HTTPNotFound)
from pyramid.security import (remember, forget, authenticated_userid,) from pyramid.security import (remember, forget, authenticated_userid,)
from deform import (Form, ValidationFailure, widget,) from deform import (Form, ValidationFailure, widget,)
from ..tools import dmy, date_from_str from ..tools import dmy, date_from_str, int_to_roman
from sqlalchemy import func from sqlalchemy import func
from ..models import (DBSession, User,) from ..models import (DBSession, User,)
...@@ -77,13 +77,25 @@ def view_home(request): ...@@ -77,13 +77,25 @@ def view_home(request):
n = [0,0,0,0,0,0,0,0,0,0,0,0], n = [0,0,0,0,0,0,0,0,0,0,0,0],
), ),
rek= [], rek= [],
rekdet= [],
sopd10= [], sopd10= [],
sopd= [], sopd= [],
) )
opd_ls = Unit.query().filter(Unit.level_id==3).order_by(Unit.kode).all() opd_ls = Unit.query().filter(Unit.level_id==3).order_by(Unit.kode).all()
reks = Rekening.query().filter(Rekening.level_id==3, Rekening.kode.ilike('4.1.%')).order_by(Rekening.kode).all() reks41 = Rekening.query().filter(Rekening.level_id==3, Rekening.kode.ilike('4.1.%')).order_by(Rekening.kode).all()
for r in reks: no3=0
data_dashboard['rek'].append(dict(kode=r.kode.strip(), nama=r.nama.strip(), jumlah=0)) for r in reks41:
no3+=1
no_roman = int_to_roman(no3)
data_dashboard['rek'].append(dict(no=no_roman,kode=r.kode.strip(), nama=r.nama.strip(), target=0, realisasi=0, persen=0))
reks41det = Rekening.query().filter(Rekening.level_id.between(3,4), Rekening.kode.ilike('4.1.%')).order_by(Rekening.kode).all()
for r in reks41det:
if r.level_id==3:
no4=0
elif r.level_id==4:
no4+=1
data_dashboard['rekdet'].append(dict(no=no4, kode=r.kode.strip(), level=r.level_id, nama=r.nama.strip(), target=0, realisasi=0, persen=0))
payments = DBSession.query( payments = DBSession.query(
ARSspd.tgl_bayar.label('tanggal'), ARSspd.tgl_bayar.label('tanggal'),
ARSspd.bayar.label('jumlah'), ARSspd.bayar.label('jumlah'),
...@@ -130,7 +142,27 @@ def view_home(request): ...@@ -130,7 +142,27 @@ def view_home(request):
data_dashboard['chart']['n'][x] += int(p.jumlah) data_dashboard['chart']['n'][x] += int(p.jumlah)
for r in data_dashboard['rek']: for r in data_dashboard['rek']:
if p.rek_kode.strip().startswith(r['kode']): if p.rek_kode.strip().startswith(r['kode']):
r['jumlah'] += int(p.jumlah) r['realisasi'] += int(p.jumlah)
for r in data_dashboard['rekdet']:
if p.rek_kode.strip().startswith(r['kode']):
r['realisasi'] += int(p.jumlah)
invoices = DBSession.query(
ARInvoice.tgl_tetap.label('tanggal'),
ARInvoice.jumlah.label('jumlah'),
ARInvoice.rek_kode.label('rek_kode'),
Unit.kode.label('kode'),
Unit.nama.label('nama'),
).join(Unit, func.trim(Unit.kode) == func.trim(ARInvoice.unit_kode)).\
filter(ARInvoice.tahun_id==dates['year']).order_by(ARInvoice.unit_kode)
invoices = invoices.all()
for i in invoices:
for r in data_dashboard['rek']:
if i.rek_kode.strip().startswith(r['kode']):
r['target'] += int(i.jumlah)
for r in data_dashboard['rekdet']:
if i.rek_kode.strip().startswith(r['kode']):
r['target'] += int(i.jumlah)
##RANKING## ##RANKING##
tanggal_berjalan = datetime.now() tanggal_berjalan = datetime.now()
...@@ -152,6 +184,12 @@ def view_home(request): ...@@ -152,6 +184,12 @@ def view_home(request):
data_dashboard['sopd10'].append(dict(peringkat=i+1, kode=sopd.kode, unit=sopd.nama, nominal=sopd.jumlah)) data_dashboard['sopd10'].append(dict(peringkat=i+1, kode=sopd.kode, unit=sopd.nama, nominal=sopd.jumlah))
data_dashboard['sopd'].append(dict(peringkat=i+1, kode=sopd.kode, unit=sopd.nama, nominal=sopd.jumlah)) data_dashboard['sopd'].append(dict(peringkat=i+1, kode=sopd.kode, unit=sopd.nama, nominal=sopd.jumlah))
##REKENING##
for r in data_dashboard['rek']:
r['persen'] = r['realisasi'] and str(round((float(r['realisasi'])/float(r['target']))*100,2)).replace('.0','') or '0'
for r in data_dashboard['rekdet']:
r['persen'] = r['realisasi'] and str(round((float(r['realisasi'])/float(r['target']))*100,2)).replace('.0','') or '0'
return dict(project='esipkd', dates=dates, data = data_dashboard, opds=opd_ls, statusadmin=statusadmin) return dict(project='esipkd', dates=dates, data = data_dashboard, opds=opd_ls, statusadmin=statusadmin)
else: else:
return dict(project='esipkd', statusadmin=statusadmin) return dict(project='esipkd', statusadmin=statusadmin)
......
...@@ -2,6 +2,7 @@ import sys ...@@ -2,6 +2,7 @@ import sys
import re import re
import logging import logging
import os import os
import qrcode
from email.utils import parseaddr from email.utils import parseaddr
from sqlalchemy import not_, func, or_, desc from sqlalchemy import not_, func, or_, desc
from datetime import datetime from datetime import datetime
...@@ -859,6 +860,13 @@ def view_pdf(request): ...@@ -859,6 +860,13 @@ def view_pdf(request):
item.pokok = row.pokok and thousand(row.pokok) or '-' item.pokok = row.pokok and thousand(row.pokok) or '-'
item.denda = (row.tgl_bayar) and thousand(row.bunga) or (row.denda) and thousand(row.denda) or '0' item.denda = (row.tgl_bayar) and thousand(row.bunga) or (row.denda) and thousand(row.denda) or '0'
item.bayar = row.bayar and thousand(row.bayar) or (row.jumlah) and thousand(row.jumlah) or (int(item.pokok)+int(item.denda)) item.bayar = row.bayar and thousand(row.bayar) or (row.jumlah) and thousand(row.jumlah) or (int(item.pokok)+int(item.denda))
from ..tools import get_settings
qrcodename = 'skrd_{}'.format(params['id'])
path = '/tmp/' + qrcodename
imgqrcode = qrcode.make(str('{}/public/skrd?id={}'.format(get_settings()['_host'],params['id'])))
imgqrcode.save(path, 'PNG')
item.qrcode = open(path, 'rb').read()
data = {} data = {}
data['item'] = item data['item'] = item
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
</button> </button>
<!--a class="navbar-brand" href="#"><img alt="web-R" src="/static/img/web-r.png" width="40"></a--> <!--a class="navbar-brand" href="#"><img alt="web-R" src="/static/img/web-r.png" width="40"></a-->
<!--a class="navbar-brand" href="#"><img alt="S I P A N D U" src="/static/img/sipandu.png" width="160"></a--> <!--a class="navbar-brand" href="#"><img alt="S I P A N D U" src="/static/img/sipandu.png" width="160"></a-->
<a class="navbar-brand" href="#"><img alt="S I P A N D U" src="/static/img/sipandu.png" width="175"></a> <a class="navbar-brand" href="/"><img alt="S I P A N D U" src="/static/img/sipandu.png" width="175"></a>
</div> </div>
<div class="navbar-collapse collapse"> <div class="navbar-collapse collapse">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link rel="shortcut icon" href="/static/img/favicon.png">
<!--link rel="shortcut icon" href="/static/img/favicon_sipandu.png"-->
<title tal:content="request.title" />
<!-- Bootstrap core CSS -->
<link href="/deform_static/css/bootstrap.min.css" rel="stylesheet">
<link href="/deform_static/css/typeahead.css" rel="stylesheet">
<!--link href="/deform_static/css/form.css" rel="stylesheet"-->
<!-- Custom styles for this template -->
<link href="/static/css/navbar-fixed-top.css" rel="stylesheet">
<link href="/static/css/theme.css" rel="stylesheet">
<!--link href="/static/datatables/extensions/TableTools/css/dataTables.tableTools.min.css" rel="stylesheet"-->
<!--link href="/static/datatables/media/css/dataTables.bootstrap.css" rel="stylesheet"-->
<link href="/static/js/pickadate/themes/classic.css" rel="stylesheet">
<link href="/static/js/pickadate/themes/classic.date.css" rel="stylesheet">
<link href="/static/css/osipkd.css" rel="stylesheet">
<!--link href="/static/css/jquery-ui.css" rel="stylesheet"-->
</head>
<body>
<!-- Fixed navbar -->
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!--a class="navbar-brand" href="#"><img alt="web-R" src="/static/img/web-r.png" width="40"></a-->
<!--a class="navbar-brand" href="#"><img alt="S I P A N D U" src="/static/img/sipandu.png" width="160"></a-->
<a class="navbar-brand" href="#"><img alt="S I P A N D U" src="/static/img/sipandu.png" width="175"></a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav"></ul>
<ul class="nav navbar-nav pull-right"></ul>
</div><!--/.nav-collapse -->
</div>
</div>
<div class="container">
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="/deform_static/scripts/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="/deform_static/scripts/jquery.form.js"></script>
<script type="text/javascript" src="/deform_static/scripts/bootstrap.min.js"></script>
<script type="text/javascript" src="/deform_static/scripts/deform.js"></script>
<script type="text/javascript" src="/deform_static/scripts/jquery.maskMoney-1.4.1.js"></script>
<script type="text/javascript" src="/deform_static/scripts/typeahead.min.js"></script>
<script type="text/javascript" src="/static/js/pickadate/picker.js"></script>
<script type="text/javascript" src="/static/js/pickadate/picker.date.js"></script>
<script type="text/javascript" src="/static/js/modernizr.custom.input-types-and-atts.js"></script>
<script type="text/javascript" src="/static/js/modernizr.js"></script>
<div metal:define-slot="content"></div>
</div> <!-- /container -->
</body>
</html>
...@@ -79,6 +79,16 @@ ...@@ -79,6 +79,16 @@
.picker { .picker {
font-size:13px; font-size:13px;
} }
.link-styleless {
text-decoration: none !important;
color:inherit !important;
}
.modal-body {
overflow-x:scroll !important;
}
.bgth {
background-color: #ddebf6 !important;
}
</style> </style>
<tal:block tal:condition="not statusadmin"> <tal:block tal:condition="not statusadmin">
<div class="well"> <div class="well">
...@@ -161,6 +171,7 @@ Selamat datang di aplikasi SIPANDU ...@@ -161,6 +171,7 @@ Selamat datang di aplikasi SIPANDU
</canvas> </canvas>
</div> </div>
<div class="col-md-5"> <div class="col-md-5">
<a class="link-styleless" title="klik untuk melihat daftar lengkap ranking" data-toggle="modal" data-target="#ranking">
<font class="labeltab">10 Penerimaan OPD Tertinggi Periode ${dates['year']}</font><br> <font class="labeltab">10 Penerimaan OPD Tertinggi Periode ${dates['year']}</font><br>
<div class="clearfix"></div> <div class="clearfix"></div>
<table class="table table-bordered"> <table class="table table-bordered">
...@@ -181,24 +192,33 @@ Selamat datang di aplikasi SIPANDU ...@@ -181,24 +192,33 @@ Selamat datang di aplikasi SIPANDU
</tal:block> </tal:block>
</tbody> </tbody>
</table> </table>
</a>
</div> </div>
</div> </div>
<div class="col-md-12"> <div class="col-md-12">
<tal:block tal:repeat="r data['rek']"> <tal:block tal:repeat="r data['rek']">
<a class="link-styleless" title="klik untuk melihat daftar lengkap rekening" data-toggle="modal" data-target="#rekeningdetail">
<div class="col-md-3 wrapopd"> <div class="col-md-3 wrapopd">
<font class="kodeopd">${r['kode']}</font> <font class="kodeopd">${r['kode']}</font>
<font class="namaopd">${r['nama']}</font> <font class="namaopd">${r['nama']}</font>
<font class="jmlopd">${'{:n}'.format(r['jumlah'])}</font> <font class="jmlopd">${'{:n}'.format(r['realisasi'])}</font>
</div> </div>
</a>
</tal:block> </tal:block>
</div> </div>
<div class="col-md-12"> <div class="col-md-12">
<div class="clearfix"></div> <div class="clearfix"></div>
<br> <div class="modal fade" id="ranking" tabindex="-1" role="dialog">
<div class="col-md-6"> <div class="modal-dialog modal-lg" role="document">
<h5>Ranking Penerimaan OPD Periode ${dates['day'].strftime('%d-%m-%Y')}</h5> <div class="modal-content">
</div> <div class="modal-header">
<div class="clearfix"></div> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-6">
<h5>Ranking Penerimaan OPD Periode ${dates['day'].strftime('%d-%m-%Y')}</h5>
</div>
<div class="clearfix"></div>
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr> <tr>
...@@ -219,6 +239,76 @@ Selamat datang di aplikasi SIPANDU ...@@ -219,6 +239,76 @@ Selamat datang di aplikasi SIPANDU
</tal:block> </tal:block>
</tbody> </tbody>
</table> </table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="rekeningdetail" tabindex="-1" role="dialog">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-12">
<h5>Detail Rekening Penerimaan Periode ${dates['day'].strftime('%d-%m-%Y')}</h5>
</div>
<div class="clearfix"></div>
<table class="table table-bordered">
<thead>
<tr>
<th style="text-align:center;">No</th>
<th style="text-align:center;">Kode Rekening</th>
<th style="text-align:center;">JENIS PENERIMAAN</th>
<th style="text-align:center;">TARGET<br>Rp.</th>
<th style="text-align:center;">REALISASI<br>Rp.</th>
<th style="text-align:center;">%</th>
</tr>
</thead>
<tbody>
<tal:block tal:repeat="r data['rek']">
<tr>
<td style="text-align:right;"><b>${'{}.'.format(r['no'])}</b></td>
<td style="text-align:left;"><b>${r['kode']}</b></td>
<td style="text-align:left;"><b>${r['nama'].upper()}</b></td>
<td style="text-align:right;"></td>
<td style="text-align:right;"></td>
<td style="text-align:right;"></td>
</tr>
<tal:block tal:repeat="rd data['rekdet']">
<tr>
<tal:block tal:condition="rd['kode'].startswith(r['kode'])">
<td style="text-align:right;"></td>
<td style="text-align:left;">${rd['kode']}</td>
<td style="text-align:left;">${'{}. {}'.format(rd['no'],rd['nama'])}</td>
<td style="text-align:right;">${'{:n}'.format(rd['target'])}</td>
<td style="text-align:right;">${'{:n}'.format(rd['realisasi'])}</td>
<td style="text-align:right;">${rd['persen']}</td>
</tal:block>
</tr>
</tal:block>
<tr class="bgth">
<td style="text-align:right;"></td>
<td style="text-align:left;"></td>
<td style="text-align:left;"><b>${'JUMLAH {} :'.format(r['no'])}</b></td>
<td style="text-align:right;"><b>${'{:n}'.format(r['target'])}</b></td>
<td style="text-align:right;"><b>${'{:n}'.format(r['realisasi'])}</b></td>
<td style="text-align:right;"><b>${r['persen']}</b></td>
</tr>
</tal:block>
</tbody>
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div> </div>
<script type="text/javascript" src="/static/js/Chart.min.js"></script> <script type="text/javascript" src="/static/js/Chart.min.js"></script>
<script type="text/javascript" src="/static/js/jquery-2.1.1.min.js"></script> <script type="text/javascript" src="/static/js/jquery-2.1.1.min.js"></script>
......
<html metal:use-macro="load: ../base.public.pt">
<div metal:fill-slot="content">
<style>
h4 {
font-weight:bold;
text-align:left;
color: #15915b;
}
h5 {
font-weight:bold;
font-size:18px;
text-align:left;
color: #264184;
}
.wraplabel {
border:1px solid #15915b;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
padding:10px;
margin-top:10px;
margin-bottom:20px;
}
.labeltab {
color:#264184;
font-weight:bold;
font-size:16px;
}
.textlabel {
display:block;
text-align:right;
color:#005500;
font-weight:bold;
}
.wrapchart {
border:1px solid #c4c4c4;
padding:0px;
margin-top:10px;
margin-bottom:20px;
}
.table {
font-size: 12px;
margin-top: 10px;
margin-bottom: 20px;
}
.table th {
background-color:#ddebf6;
}
.no-padding {
padding:0px;
}
.wrapopd {
border:1px solid #c4c4c4;
min-height:120px;
padding-top:5px;
padding-bottom:5px;
}
.kodeopd {
display:block;
color:#264184;
font-size:120%;
font-weight:bold;
}
.namaopd {
display:block;
color:#264184;
font-weight:500;
}
.jmlopd {
display:block;
font-size:120%;
color:#264184;
font-weight:bold;
text-align:right;
position: absolute;
bottom: 5px;
right: 10px;
}
.picker {
font-size:13px;
}
.link-styleless {
text-decoration: none !important;
color:inherit !important;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: transparent !important;
border : none !important;
border-radius : 0px !important;
-moz-border-radius : 0px !important;
-webkit-border-radius : 0px !important;
box-shadow : none !important;
-moz-box-shadow : none !important;
-webkit-box-shadow : none !important;
opacity: 1;
}
.border {
border : 1px solid #ccc;
}
.padding {
padding: 15px;
}
.table {
font-size:13px !important;
}
.bold {
font-weight: bold !important;
}
</style>
<tal:block tal:condition="not found">
<h2>Data tidak ditemukan</h2>
</tal:block>
<tal:block tal:condition="found and data">
<form class="form-horizontal">
<div class="col-md-12" align="center">
<h2>No. Skrd : ${data.no_skrd}</h2>
<br>
</div>
<div class="col-md-6 col-md-offset-3">
<div class="border padding">
<table class="table">
<tr>
<td class="bold">Kode Bayar</td>
<td> : </td>
<td>${data.kode}</td>
</tr>
<tr>
<td class="bold">Masa Retribusi</td>
<td> : </td>
<td>${data.periode_1} s/d ${data.periode_2}</td>
</tr>
<tr>
<td class="bold">Tahun</td>
<td> : </td>
<td>${data.tahun_id}</td>
</tr>
<tr>
<td class="bold">Tanggal Jatuh Tempo</td>
<td> : </td>
<td>${data.jatuh_tempo.strftime('%d-%m-%Y')}</td>
</tr>
<tr>
<td class="bold">Nama</td>
<td> : </td>
<td>${data.wp_nama}</td>
</tr>
<tr>
<td class="bold">Alamat</td>
<td> : </td>
<td>${(data.wp_alamat_2 and data.wp_alamat_2 != '-') and ('{} {}'.format(data.wp_alamat_1, data.wp_alamat_2)) or data.wp_alamat_1}</td>
</tr>
<tr>
<td class="bold">NPWRD</td>
<td> : </td>
<td>${data.wp_kode}</td>
</tr>
<tr>
<td class="bold">Kode Rekening</td>
<td> : </td>
<td>${data.rek_kode}</td>
</tr>
<tr>
<td class="bold">Jenis Retribusi Daerah</td>
<td> : </td>
<td>${data.rek_nama}</td>
</tr>
<tr>
<td class="bold">Jumlah</td>
<td> : </td>
<td>${'{:n}'.format(data.jumlah)}</td>
</tr>
</table>
</div>
</div>
</form>
</tal:block>
</div>
</html>
...@@ -32,7 +32,8 @@ requires=['pyramid==1.5.8', ...@@ -32,7 +32,8 @@ requires=['pyramid==1.5.8',
'pyramid_rpc', 'pyramid_rpc',
'requests', 'requests',
'unoconv', 'unoconv',
'py3o.template' 'py3o.template',
'qrcode'
] ]
if sys.argv[1:] and sys.argv[1] == 'develop-use-pip': if sys.argv[1:] and sys.argv[1] == 'develop-use-pip':
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!