From da8ba9ab8d9b7744dcbc9945aa78ccc3000a78af Mon Sep 17 00:00:00 2001 From: Bachurin Sergey Date: Mon, 2 Mar 2015 20:20:09 +0200 Subject: [PATCH] some layout --- project/docs/filters.py | 6 +- project/docs/views/invoice.py | 2 + project/static/css/style.css | 103 ++++++--- project/static/img/asc.png | Bin 0 -> 150 bytes project/static/img/close.png | Bin 0 -> 570 bytes project/static/img/desc.png | Bin 0 -> 148 bytes project/static/img/icon-delete.png | Bin 0 -> 523 bytes project/static/img/icon-edit.png | Bin 0 -> 772 bytes project/static/img/nosort.png | Bin 0 -> 142 bytes project/static/img/sign-add.png | Bin 0 -> 1229 bytes project/static/img/sign-copy.png | Bin 0 -> 899 bytes project/static/img/sign-edit.png | Bin 0 -> 772 bytes project/static/img/sign-email.png | Bin 0 -> 688 bytes project/static/img/sign-pdf.png | Bin 0 -> 1858 bytes project/static/img/sign-xls.png | Bin 0 -> 1826 bytes project/static/js/client.commons.js | 3 + project/static/js/commons.js | 15 +- project/templates/base.html | 108 ++++----- project/templates/customer/clients/list.html | 59 ++--- .../templates/customer/clients/list_item.html | 4 +- project/templates/docs/_base/base_add.html | 8 +- project/templates/docs/_base/base_form.html | 6 +- project/templates/docs/_base/base_list.html | 210 +++++++++--------- project/templates/docs/_base/preview.html | 10 +- project/templates/docs/aktsverki/list.html | 4 +- project/templates/docs/dover/list.html | 4 +- project/templates/docs/invoice/form.html | 12 +- project/templates/docs/invoice/list.html | 8 +- project/templates/docs/parts/doc_actions.html | 26 +-- .../templates/docs/parts/doc_actions2nd.html | 11 +- .../docs/parts/invoice_create_docs.html | 19 +- project/templates/docs/platejka/list.html | 4 +- project/templates/pages/index.html | 2 +- project/templates/paginator.html | 1 + 34 files changed, 339 insertions(+), 286 deletions(-) create mode 100644 project/static/img/asc.png create mode 100644 project/static/img/close.png create mode 100644 project/static/img/desc.png create mode 100644 project/static/img/icon-delete.png create mode 100644 project/static/img/icon-edit.png create mode 100644 project/static/img/nosort.png create mode 100644 project/static/img/sign-add.png create mode 100644 project/static/img/sign-copy.png create mode 100644 project/static/img/sign-edit.png create mode 100644 project/static/img/sign-email.png create mode 100644 project/static/img/sign-pdf.png create mode 100644 project/static/img/sign-xls.png diff --git a/project/docs/filters.py b/project/docs/filters.py index 5e92c68..478e174 100644 --- a/project/docs/filters.py +++ b/project/docs/filters.py @@ -100,8 +100,8 @@ doc_date_choices = { closed_status_choices = ( ('', u'Все счета'), - (1, u'Закрытые'), - (0, u'Не закрытые'), + (1, u'Закрытые актом выполненных работ'), + (0, u'Не закрытые актом выполненных работ'), ) paid_status_choices = ( @@ -171,7 +171,7 @@ def build_filterset_class(model, user, need_fields=None): fields.append('invoice') elif f == 'closed_status': - closed_status = django_filters.ChoiceFilter(label=u'По закр. документам', choices=closed_status_choices, + closed_status = django_filters.ChoiceFilter(label=u'По закрывающим документам', choices=closed_status_choices, widget=django_filters.widgets.LinkWidget) attrs['closed_status'] = closed_status fields.append('closed_status') diff --git a/project/docs/views/invoice.py b/project/docs/views/invoice.py index 18543fd..ca6d5f1 100644 --- a/project/docs/views/invoice.py +++ b/project/docs/views/invoice.py @@ -20,6 +20,8 @@ class InvoiceViews(BaseItemsViews): ITEM_FORM_CLASS = InvoiceItemForm # форма табличной части документа ITEM_FORM_PREFIX = 'invoice_items' # префикс формы табличной части + ORDER_FIELDS = ('doc_date', 'doc_num', 'client__name', 'doc_sum', 'paid_status', 'closed_status') + # поля, по которым можно фильтровать список документов # должны поддерживаться в docs.filters.build_filterset_class ! FILTER_FIELDS = ('paid_status', 'closed_status', 'client', 'doc_date',) diff --git a/project/static/css/style.css b/project/static/css/style.css index 977c7a3..5a49a8d 100644 --- a/project/static/css/style.css +++ b/project/static/css/style.css @@ -49,7 +49,6 @@ body { #bg-index {background:url(../img/index-banner.png) no-repeat top center;position:absolute;top:150px;height:551px;width:100%;} #bg-index-promo {background:#38424c;position:absolute;top:701px;height:200px;width:100%;} #body { - height:auto; min-height:100%; position:relative; @@ -66,9 +65,10 @@ body { } .w1200 {width:1200px;margin:0 auto;} +.content-white {width:1200px;background:#fff;box-shadow: 0 0 5px #ddd;padding:15px 15px 0 15px;box-sizing:border-box;margin-bottom:70px;} #header {height:100px;width:100%;position:relative;} #logo {font-family:"MyriadProRegular";display:block;overflow:hidden;margin-top:18px;} -#logo .logo-bigfont {font-size:30px;line-height:30px;margin-top:12px;} +#logo .logo-bigfont {font-size:30px;line-height:30px;margin-top:12px;text-transform:uppercase;} .logo-text {margin-left:10px; font-size:18px;color:#3e454c;line-height:18px;} .auth_block {margin-top:30px;} .login, .register {display:block;padding-left:34px;margin: 0 3px;height:36px;text-decoration:none;font-family:Arial,Helvetica,sans-serif;color:#36393f; line-height:36px;} @@ -119,17 +119,17 @@ body { .register-arrow {width:300px;height:100px;background:url(../img/black_arrow.png) no-repeat center center;position:absolute;left:50%;top:340px;margin-left:300px;color:#fff;padding: 20px 0 0 0;font-style:italic;text-align:center;font-size:16px;} .register-arrow p {margin:5px;} -.auth-form .field input[type="text"], .auth-form .field input[type="email"], .auth-form .field input[type="password"]{width:300px;vertical-align:bottom;height:50px;margin-top:32px;} +.auth-form .field input[type="text"], .auth-form .field input[type="email"], .auth-form .field input[type="password"]{width:300px;vertical-align:bottom;height:50px;margin-top:32px;font-size: 46px;line-height:46px;} .auth-form .field input[type="checkbox"] {height:20px;width:20px;vertical-align:middle;height:50px;} .auth-form .field#captcha input[type="text"] {width:130px;height:50px;} -.auth-form .field label {display:inline-block;width:200px;text-align:right;line-height:50px;padding-right:5px;vertical-align:middle;} +.auth-form .field label {display:inline-block;width:190px;text-align:right;line-height:50px;padding-right:5px;vertical-align:middle;} .auth-form .field#profile_type label {width:200px;vertical-align:middle;height:50px;} .auth-form .field #id_register-profile_type {float:right;margin-top:15px;} .auth-form .field #id_register-profile_type label {width:300px;font-size:13px;line-height:20px;vertical-align:bottom;height:30px;text-align:left;} .auth-form .field img {vertical-align:middle;} .auth-form .buttons {text-align:center;margin-top:45px;} -.auth-form .buttons input[type="submit"]{background:#fed13e;border:none;font-size:22px;padding:15px 40px;color:#4e5661;font-family:"Arial Narrow", Arial, sans-serif;font-weight:bold;} +.auth-form .buttons input[type="submit"]{background:#fed13e;border:none;font-size:22px;padding:15px 40px;color:#4e5661;font-family:"Arial Narrow", Arial, sans-serif;font-weight:bold;text-transform:uppercase;} .auth-form .captcha_refresh {display:inline-block;margin: 0 10px;width:24px;} .register-form {margin:0 46px 64px 0;width:514px;padding:20px;background:#fff;box-shadow: 0 0 5px #ddd;float:left;} @@ -232,10 +232,18 @@ h2 {font-weight: normal;font-size:24px;} .ui-widget-content { background:#fff; } -.ui-dialog .ui-dialog-content { - background:#fff; -} .ui-dialog .ui-dialog-buttonpane { + background:none!important; + border:0; +} +.ui-dialog .ui-dialog-content {font-size:14px;} +.ui-widget-header {background:#fff;border:none;color:#646669;text-transform:uppercase;font-size:18px;font-weight:normal;font-family:"Arial Narrow", Arial, sans-serif;} +.ui-state-default .ui-icon {background:url(../img/close.png) no-repeat center center;} +.ui-icon {width:22px;height:22px;} +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {background:none;border:none;} + +.client-edit-form_dlg .ui-dialog-buttonpane { + background:none!important; border:0; position:absolute; bottom:0; @@ -257,11 +265,18 @@ ul.messagelist li.warning { background-image: url(../img/icon-alert.gif); } ul.messagelist li.error { background-image: url(../img/icon-error.gif); } .ui-dialog .save_btn {display:inline;font-family:"Arial Narrow", Arial, sans-serif;font-size:22px;text-transform:uppercase;font-weight:bold;border:none;width:215px;height:72px;background:#fed13e;border-radius:0;} -.ui-dialog .save_btn span {width:215px;display:table-cell;vertical-align:middle;text-align:right;text-transform:uppercase;text-decoration:none;font-size:22px;color:#4e5661;background:url(../img/save.png) no-repeat 20px top;} +.ui-dialog .save_btn span {width:215px;display:table-cell;vertical-align:middle;text-align:right;text-transform:uppercase;text-decoration:none;font-size:22px;color:#4e5661;} .ui-dialog .cancel_btn {display:inline;font-family:"Arial Narrow", Arial, sans-serif;font-weight:bold;border:none;width:120px;height:72px;background:none;border-radius:0;} .ui-dialog .cancel_btn span {width:215px;display:table-cell;vertical-align:middle;text-align:center;text-decoration:underline;font-size:14px;color:#498dd0;font-weight:normal;} -.reqs_btns .yellow-btn {color:#4e5661;} + +.client-edit-form_dlg .save_btn span {background:url(../img/save.png) no-repeat 20px top;} +.yellow-btn {color:#4e5661;background:#fed13e;} +.btn {display:inline-block;font-family:"Arial Narrow", Arial, sans-serif;font-size:22px;text-transform:uppercase;font-weight:bold;border:none;height:72px;background:#fed13e;border-radius:0;} +.btn a {height:75px;display:table-cell;vertical-align:middle;text-align:center;text-transform:uppercase;text-decoration:none;color:#fff;font-size:22px;} +.docs-btn {margin-bottom:15px;} +.docs-btn a {padding: 0 40px;font-weight:normal;} +.yellow-btn a {color:#4e5661;} .hidden {display:none; } @@ -275,7 +290,7 @@ form label {font-style:italic;font-size:16px;} .label {width:120px;text-align:right;font-size:14px;color:#646669;line-height:30px;} .form-field: {width:210px;} -input, select, textarea { font-family: Arial,Helvetica,sans-serif; font-size: 46px;line-height:46px; background:#f8f8f8;background:#f8f8f8;} +input, select, textarea { font-family: Arial,Helvetica,sans-serif;background:#f8f8f8;} fieldset { padding: 0 0 10px; @@ -316,8 +331,9 @@ input[type=text], input[type=email], input[type=password], textarea, option { pa .profile-col1, .profile-col2 {float: none;background:#fff; box-shadow: 0 0 5px #ddd;padding:0px;display:table-cell;} #profile {position:relative;margin-bottom:85px;} #profile div {line-height: 20px;} -.reqs_btns {position:absolute; bottom:115px;text-align:center;width:785px;} +.reqs_btns {position:absolute; bottom:215px;text-align:center;width:785px;} .reqs_btns input {display:inline;font-family:"Arial Narrow", Arial, sans-serif;font-size:22px;text-transform:uppercase;font-weight:bold;padding:25px 15px 25px 70px;border:none;} +.reqs_btns .btn {color:#4e5661;} .reqs_btns .yellow-btn {color:#4e5661;} .reqs_btns .black-btn {color:#fff; margin-left:15px;} .reqs_btns .black-btn.envelope {background:#38424c url(../img/envelope.png) no-repeat 15px center;} @@ -329,6 +345,7 @@ input[type=text], input[type=email], input[type=password], textarea, option { pa #edit_profile {display: inline-block; float:right;padding-left: 15px;background:url(../img/pencil.png) no-repeat;font-size:13px;} ul { clear: both; list-style: none; margin: 0; padding: 0; } +.nav {display:block;margin:20px;} .has-datepicker { background: url(../img/icon-calendar.gif) no-repeat scroll right center transparent; } @@ -343,9 +360,17 @@ ul { clear: both; list-style: none; margin: 0; padding: 0; } .add-link img { vertical-align: middle; margin-right: 6px; } .edit-link a, .delete-link a { text-decoration: none; } -.doc-panel .edit-link img, .doc-panel .delete-link img, .doc-panel .email-link img, - .doc-panel .pdf-link img, .doc-panel .excel-link img - { vertical-align: middle; margin-right: 6px; } +.doc-panel {background:#fff;} +.doc-panel a.doc {display:block;margin: 13px 0 13px 20px;height:40px;padding-left:43px;line-height:40px;:} +.doc-panel a.pdf-link {background:url(../img/sign-pdf.png)left center no-repeat;} +.doc-panel a.excel-link {background:url(../img/sign-xls.png)left center no-repeat;} +.doc-panel a.copy-link {background:url(../img/sign-copy.png)left center no-repeat;} +.doc-panel a.invoice-add-doc {background:url(../img/sign-add.png)left center no-repeat;} +.doc-panel a.email-link {background:url(../img/sign-email.png)left center no-repeat;} +.doc-panel a.edit-link {background:url(../img/sign-edit.png)left center no-repeat;} +.doc-panel a.delete-link {background:url(../img/icon-delete.png)7px center no-repeat;} +.doc-panel .doc-panel-header {background:#f7f7f7;padding:10px 18px;font-size:16px;} +.preview-col2 .doc-panel {box-sizing:border-box;} a.delete { vertical-align: top; } @@ -356,8 +381,8 @@ a.delete { vertical-align: top; } .profile-filters-form .accounts ul li { margin: 4px 0; } .profile-filters-form .accounts ul li span.name { margin-left: 25px; } -.doc-form { padding-left: 2px; } -.doc-form input[type=text], input[type=password], textarea, option { padding-left: 2px; margin-left: 0; } +.div-doc-form {background:#fff;padding:15px;box-shadow: 0 0 5px #ddd;} +.doc-form input[type=text], input[type=email], input[type=password], textarea, option { padding-left: 2px; margin-left: 0; } .doc-form #doc_date, .doc-form #doc_mesto, .doc-form #end_date, @@ -449,16 +474,27 @@ a.delete { vertical-align: top; } .errors-layout ul { list-style: none; margin-bottom: 10px; padding: 5px 10px; border: 1px solid red; } -table.list { width: 100%; border: none; font-size: small; } -table.list th { background: #f5f5f5; text-align: left; font-size: 11px; } -table.list tr.even { background: #fff; } -table.list tr.odd { background: #eee; } -table.list td { word-break: break-all; padding: 5px 0; } - +.docs-content-wrapper {border:#dedede 1px solid;border-bottom:none;overflow: hidden;position:relative;} +.docs-content-wrapper table.list {border:none;} +table.list {border-collapse: collapse;border:#dedede 1px solid;border-bottom:none;width: 100%;} +table.list tr:nth-child(odd) {background: #f7f7f7;} +table.list tr th {text-align: left;font-size:12px;color:#646669;padding:7px 10px 7px 10px;border-right:#dedede 1px solid;border-bottom:#dedede 1px solid;border-top:none;background: #f7f7f7;} +table.list tr th:last-child {border-right:none;} +table.list tr th a {font-size:12px;color:#646669;text-decoration:none;} +table.list tr td a {color:#313942;text-decoration:none;} +table.list tr td {font-size:14px;color:#313942;padding:7px;word-break: break-all;} + +.filters-header {background: #f7f7f7;overflow:hidden;margin:0;} +.filters-header span {color: #646669;padding: 7px 0 7px 20px;font-size:12px;font-weight:bold;display:block;width:100%;box-sizing:border-box;border-bottom:#dedede 1px solid;} .filters p { margin: 15px 0 0; font-weight: bold; } -.filters ul li a.selected { border-left: 5px solid #ccc; margin-left: -10px; padding-left: 5px; } +.filters ul { padding: 10px 0 10px 20px;} +.filters ul li a.selected { color:#646669;text-decoration:none;} +.filters select {font-size:13px;margin-left:20px;} +#filters_form {padding:10px 25px;} -.pagination { font-size: small; color: black; margin-top: 5px; padding-top: 1ex; width: 99%; border-top: 1px solid; } +.pagination {margin-top: 5px; padding-top: 1ex; width: 99%; color:#646669;font-size:13px;} +.pagination select {font-size:13px;} +.doc-pagination {position:absolute;bottom:0;width:775px;padding:10px;} /* blockUI */ div.blockOverlay { background: url('../img/ajax-loader.gif') no-repeat center center; z-index: 99999; } @@ -484,14 +520,19 @@ div.blockMsg { width: 100%; height: 100%; top: 0; left: 0; text-align: center; } #menu .other_docs_menu {position:absolute;top:50px;z-index:50;} #menu .other_docs_menu li {display:block;} -.preview {width:780px;height:500px;overflow:scroll;float:left;} -.list-col2 {float: left; width: 180px; margin-left: 16px; padding: 0 10px 10px 10px; border-left: solid 1px #797979;} -.doc_status1, .doc_statusFalse, .doc_statusfalse {color:red;} -.doc_status3, .doc_statusTrue, .doc_statustrue {color:green;} -.doc_status2 {color:blue;} +.preview-wrapper {width:1200px;background:url(../img/darker-bg.png);margin-bottom:70px;} +.preview {width:785px;height:500px;overflow:scroll;float:left;margin:15px 0 15px 15px;} +.list-col1 {float: left; width: 785px;padding-bottom:50px;} +.list-col2 {float:left;width:382px;padding: 0; border-left:#dedede 1px solid;} +.th_w300 {width:300px;} +.preview-col2 {float:left;width:370px;height:500px;padding:0; border-left:none;margin:15px;overflow:auto;background:#fff;} +table.list tr td a.doc_status1, table.list tr td a.doc_statusFalse, table.list tr td a.doc_statusfalse {color:#c43f04;} +table.list tr td a.doc_status3, table.list tr td a.doc_statusTrue, table.list tr td a.doc_statustrue {color:#19a12f;} +table.list tr td a.doc_status2 {color:blue;} tr.doc-row:hover {cursor:pointer;} -#clients tr:nth-child(odd) {background: #f5f5f5;} + +.white_bg {background:#fff!important;} #req-avail-form {display:none;} .close-message {display:inline-block;float:right;} diff --git a/project/static/img/asc.png b/project/static/img/asc.png new file mode 100644 index 0000000000000000000000000000000000000000..d2f144864720f9718ce10d102601cfc06ffae395 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1p!3HD`EN_1Yq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6%A_P)r767-P3MRn?m;-KJON>{U z7x+(_0!`2WA#ea*z!&%B`pS5Sc}>q65s?3U4O43^AfB}YpJ}#IamZ8*LbVL zI;juZrAK@vEsQ#dq6YCkI2=hMob;JWEQ4o|QSl7pWfd>c6S0_7QazL>Spzaln-B29t^b=MYHW#UMDY!eQ--%@qrNm?Azr=f2ZCEilPilIh40g?Ja-(et9 zSX8m1gV05fU!(&t;gBRfET~w)Fuc(c&p@O-Fy$b$_pqpXY!Zv7XYo@@8UBYis)yT# z;YAIfdBb9VHh@P>|I#oN`|z&S^gZ-cEFNVaAgAt{1@nfXR2a{yc#fX7mw_Gd$P=ie zp4hZ>JPh`Dxcq$ka)&&)XTmru%(^^1zmC2d*aUUHisv7hhk11hYfgvs9f*S^&;`37 zrgCD8cbONr3uSo?Pav^}G9Z@BK%^KStL05^7eIS7e?tpET307*qo IM6N<$f+$q~W&i*H literal 0 HcmV?d00001 diff --git a/project/static/img/desc.png b/project/static/img/desc.png new file mode 100644 index 0000000000000000000000000000000000000000..eda9837538a4eb09842effd52f2e6347c0356844 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1p!3HD`EN_1Yq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6`6UuIEGZ*N;26}lGM<|rjeH5B$VJF*1~z9)ZpL$|MMAT tH%LTUCU-P#F<#VZct|J7Wf>zA4}%CNN7hR5240{E44$rjF6*2UngF>uECB!j literal 0 HcmV?d00001 diff --git a/project/static/img/icon-delete.png b/project/static/img/icon-delete.png new file mode 100644 index 0000000000000000000000000000000000000000..54d847adf725bd5f120ddf0ccb21aa575db98384 GIT binary patch literal 523 zcmV+m0`&cfP)tRxuW?^o~@^;Z zNg?ME$Z^lmH_uojLMa-b=+Fxq;20E@NRhS%eGFqHHYKUe06hagAOIP#t?c%9Kp(p# zc2VL~4Vi=oe?t{13Qof&PYOCg{r3>RdxTw_k^*=3du<-pdL|pUxDk43EfL8v-HfbNZn4I!L#+t za)=97#P^KI#sXLc58zF`1o9RQgLC?H{(IOuJaUDB1GIlq*t>oO7yzX-W{@qh@wbPK@cG>Tqr*9HHuNxsL_Zq&P;nQ zoRVu%-BZ;uo#26wRM*T@pRT%fZ*}sON+kzv2K`_~Zt)a>Pv8On{-qK)0Ji3`({6AP zJk*_qj7^AEg8iV&HnJ2dgMsB>MATu&h-d~(f&3x|t89i|*L{qU7vOvbv#nzCQcCD=XZt5;&~!OPfX?x6DkGBQM%X?BUV-)CNT88#-~^aYYoyE! zsJ~NEeZDICri3^nl2ayCjxkR+8E9mV%bMCqjcAFX%m34^DY_;hZbr6%U2IeP6ry91x-hP zyS=63jNIpuE~k>w2XH(^OxQ*S!A|gm!QV_W5;?MA7|y*vsn*1NTCbk!~KQ zBhJnY4>H>WN{4L!m)3*WC1QsOJ3;W)C2CHn*I@=?BeK50pm_>Ag_m=T* zCK>rbwCdbBzN#t{MjOFFa28z6BE?s&IMC{I82n=-%E*N18MqynSv&uMfjmtNwlFd3 zIw%<<@~&}61*Weg2i)So-7J((!8&etE$JVNJFS&CSQ{&DsAMPIV0#m?=g#MlNNvIm$g`+ZH=dF1N? z0=1V9F~o6RgK_>3WI<=vP{}#vI%oHd%B|6H_V+Po~-c6&ZNCIEGZ*N;26}lGM<|rjeH5B$VJF*1~z9)ZpL$|MMAT oH%LTUE?#|Po$P8?21Ygp*)q=OYdketfqEG{UHx3vIVCg!0Jyg+9{>OV literal 0 HcmV?d00001 diff --git a/project/static/img/sign-add.png b/project/static/img/sign-add.png new file mode 100644 index 0000000000000000000000000000000000000000..4e37abcf71fd448e44061a32701b4a02eea648b7 GIT binary patch literal 1229 zcmV;;1Ty=HP)}i0Da_Xk|sH<*Mt-S`bmvLud#=Q51qv ztS?ojePp9J>d@+PnnnCbVvu3L~uZM2LN-5811N^AWB z5$&{_XnJ$v>=%azA_B`5>V;-%p*1W+#q;MRdyT!b_0(Ew*DOi{()mAX_9U=nk)xqU@&t2up}K{Cd&!!7ZACD4O_Txm1yiw z4sROooQ_E_0S>W?oLGUc{K+88f#-p}z^3+4>ppN=L+pU$Lzt}Zus^Wxz@$Anh?WDI zNZUUH`(o3)4{QfU`6MNpVnS1b^>f|%6G^7ew_5FI73D<)Ie%e)f`*Jq`}v~D%_cbf zn2tz10t{D>h=t#I8Ygbg&CPvlo!Jl*|muO-*FoTze#av1> zF&kj{G+ua(e}RWo z6ePYj^=s6b$R%JKFfGq!qYw=>_M5z4Cfl&tHDIk&$AzM!nwe%wirb*F8+n7MXcJ_V zsG%A{OoXf6Q(QX+Ai;B=OVe}<1#LozCO$F`yaRB*@QmDtayba^%Oz`Y)J=fIRV1%f z#pY^(kSc9e%0IBC#ZSh8S0Xa(FGnlpbC2;2w)}f29U8W6fK=a56V_21_(+%&t^nUP zG!wsb0b1y`+wEa38*@M6#sxCmmvE0#7d3H$;@Wdc8lz4{W5mw=I2xn-k+wH4YK+K% zmEl^yM9sWQJ literal 0 HcmV?d00001 diff --git a/project/static/img/sign-copy.png b/project/static/img/sign-copy.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe5949cebd503f2759e189409715205dc3a0d79 GIT binary patch literal 899 zcmV-}1AP36P)nt*wnk1R1>$)AQ>*=-=8?XHts%MS8|(OWmXt}Gf(+@ldGHCJJ+Lt*i=uUOwp>S zWwR16R{(RPHOM4o$^w3%NGK72xxBgk{ALsoo5sm>B_tpC%;J9WKza=@w^5g7Dg|rH zAt8XjAYDaSPDU_L;06NFYy6z%k32j3;V@M31vGu zA_6cZl9nkiEJv}^Z=^8<8Nwiy$-lchXU@v~1tDdz{x!2f@eWr*@VI!tm=0)FbB}-STbzf9P%7XE~fp80mXdsOG(fq47 z5{PN3#1Moi^+7g$r;P265fDWAN0j7KZ1z#~N|i7sYPO|#t0lmk!|}na?GK&Q>#p4~ z0)l4tJLdK3F=12}V`{Ks>qyJC?>Hryk}4nJpSyBLt{U%F0Fj5x<`A&wJL1^G8teZA Z7yzbbi=Jix-6sG5002ovPDHLkV1jS_oGJhS literal 0 HcmV?d00001 diff --git a/project/static/img/sign-edit.png b/project/static/img/sign-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..65a2c501b962fc0d56c338d7fadc79a8eac50667 GIT binary patch literal 772 zcmV+f1N;1mP){@qh@wbPK@cG>Tqr*9HHuNxsL_Zq&P;nQ zoRVu%-BZ;uo#26wRM*T@pRT%fZ*}sON+kzv2K`_~Zt)a>Pv8On{-qK)0Ji3`({6AP zJk*_qj7^AEg8iV&HnJ2dgMsB>MATu&h-d~(f&3x|t89i|*L{qU7vOvbv#nzCQcCD=XZt5;&~!OPfX?x6DkGBQM%X?BUV-)CNT88#-~^aYYoyE! zsJ~NEeZDICri3^nl2ayCjxkR+8E9mV%bMCqjcAFX%m34^DY_;hZbr6%U2IeP6ry91x-hP zyS=63jNIpuE~k>w2XH(^OxQ*S!A|gm!QV_W5;?MA7|y*vsn*1NTCbk!~KQ zBhJnY4>H>WN{4L!m)3*WC1QsOJ3;W)C2CHn*I@=?BeK50pm_>Ag_m=T* zCK>rbwCdbBzN#t{MjOFFa28z6BE?s&IMC{I82n=-%E*N18MqynSv&uMfjmtNwlFd3 zIw%<<@~&}61*Weg2i)So-7J((!8&etE$JVNJFS&CSQ{&DsAMPIV0#m?=g#MlNNvIm$g`+ZH=dF1N? z0=1V9F~o6RgK_>3WI<=vP{}#vI%oHd%B*9u0z7!_m0Ss%s3c7tE7okyA7?+3%Ve93v8bgE~rU>4^Blw~97U znKdDo)Q&xH3Vyrs9 zx29%Jb3dvg*}kcfZ)Rj(-;g&qFr<@@)~x57(=eymb62-%EB`EWYE4*W><}FiR+4Kg z!qjXvGCIAhn-VMBn9t|!RUsL(D*1|pE5jWq;2T*~*i=rtdRwZ{H1xK+65{250R{l% W@unIbg}fyI00002$h4 zVH8DbNf(JxsRm6HfkbT}LI_B)7@v3}z8Dh{a7%pD2ThC{(L^E-#9*Sth(Jit0ufXw zg+M9AE_7dJ>n!*Boiq2Ap-f9VaNC=^{r^4ZKj-_tbM7en4jiPMO;J^KgRX1q9Gd3Q zbluc7jWlb=ebQ8w6h)z#Hh#uq+uAOu$BrC1)!EtknQ7q9G^xnzrHaZ*8XXy?NF+kA zC3Ey??`XkGzQC@VRM^JG(&;qS*Ei6z>YDA}?)$pzuhVDtdOV&P=cqi%+TFNr&f{1? zTOyI5STsUgw{73^RAb}&(P(tWvAG7d`8vSiv=@=@St^yHNGwjTZGU|?qLaGV*7jcB z_vA(ryD=Bzj0hx|M#sk~juq#_2s`G`b@I5~G&(v)%`GkOu54`lC?1O`vpF&64d|tK zJWf5med5GSTRLMsl8JbKc$pPw_hH*za zTrL-7e11w|OlinL$y8dLTV7w^TpS2|jCTwa?gR|DT~11*k~9Wf6#M;T82RDE(O|<2 zQc^WUQ6W`PH5DR+f4V0p5K8j!N|E>3#LFIUolpuI5)73YMLxf&TJ!Wmftf;RlgTuI zIZWY2RpLlKs^)WuQ>p9vy|IH=FgQGnGBsWCJ<8jjj3Q=iE33YXM zQ~%(gxLH!{hXblmxHMRDS7+uG39gQ*bc(urZ%X)k`v+(c+;=&hw4$z-mW0D#jY}e- zX^Nz04ltQpBoqq=Of!yx*XyCmigI$oxMr1OP7$vf$n%Z^bQG+898ah&Ikn*l*$T?hq(R2B-}w)#SQAJ|Ip!W26a8N&!CqZ2zE z4rhZ4p~Q8TiiiR`SY8$qguC6YYy^}nPHe=W7EWE8awmJwu9C(yT}Y?W74bxTFJ$|3 zV5%K0q_#8Y_wSmR7_atvi^%2nFa(4)tc)6H2CWwWas=4DtQbwHMmAdJEywI<9B-j2 z=BmJu4hNhLCpmT9Z5ruaKA(SM#>jl4mzD&!KDY9T>O?YS2~kFtV+tcwa=ILn4t9c9 zXTVw_ISE?2P&rLOKO4f!5Ty(Z8vr|>Q6EaN zx5%6dXKtT(qV+V5Pef#L5fK06iUwLxUQS0({vnMD-}ifc^ms!ZRUmCi82kOiNujBv z6;7^sc9lH4l`eac&=OUP>b98Js+Oy5yt1?BFNhN?(R~90)PChE?by7LE?>PSH6s`Z zNSoJs_8e_`=M7Cj=V^UASr??QChLAAk9kj{n(8 zUA?_R)3VYKy}50(w0Q@9`k4+NJw^*4Vl3(C80d{Hn<;?Sj-|d}+2$ZI7NY1UPo4Xl zx_WxVxUZ;4@W9LQ0?2hWk5X;*GO4V6kaEUEES{jR_8*}A2M-Z?%6qFF45kru%ZCpC zM#DHh|4bu2^gvj0uLy&(ffZ$B79j%M>hZiKix<;k^cwb;Rzb4OuV++qJ=n6o324@+ zJQT7h3BH4}y*K;mTGtIa-+oz~TeNTi*pnnTqVej>>p)4zy%jJ9Ew9)Ma8*@SOmk3? z?};zJ|3RX_-Br`t)lxGO2)`=8PS4E=l}T=W%uHFfpv&EI)7lrUFRg4x#9GMm^unsA z@lhKU)bqH99}EkHp@!7-;%XViI+4lN26?}fc2QSlilUgW>R5%^fp9XASa=w4rbT8p z?nlecDY?|qK^ah%?{jm@1_Pj{%)$7s?jAA7V#dnLsk#CRCn18|Z-`hSomqiX#VIFB zeIy#ybb#)IlV{F;2cL8ddd61@xkWltq6#(*4wa&9TZOINF&D*|=ob&qxe?#2u_lew%YYk&6 zrP@6woJn&s%_yAu22_sm7}c~GfbgJRDgQ`unx$Qz?|vua1P7;(x->f|UvpAwv$DV9r)uNB94U@vJmJ^u?Z05IB^u|1Aj$p8QV07*qoM6N<$f;aVS_W%F@ literal 0 HcmV?d00001 diff --git a/project/static/img/sign-xls.png b/project/static/img/sign-xls.png new file mode 100644 index 0000000000000000000000000000000000000000..5ad51b6de01621280757e7d400da65ddfb755b30 GIT binary patch literal 1826 zcmV+-2i^FIP)>lXf0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBURU!RCwCNSXpdTRT%#7GBcf-w$p98 zK!MgSAkZoS1w}9=xHRID7{x?*@PQ|ziGjp4#^|ew?;3c}7~_Ky5;b5XCO#RIs9;5C zp`C6(m+9V_&OX=g|L?u+bb!uGHF}bhIrrRq&iR+`|Nj4s^68gnD6?sr`iidUuj-oS z(R2;Z8tIx!nu@W`V~rF=q176{Pp8w=+jEW1oId@@`EzGKryNbsdOnU#KBRxx48ss% z+S(tWrk2(N5Zm+pxw9u%Tch$Kt9$W$g8s!8kH;yp7^dTIcYS>D>CV?y6(nO^Wc7co zu~p*n1cf6JrR&}IPIVr7?pQvqG0@YwHrFhSFb3F?E3{Ho3qJ;>Qs!2`8zquSS_p-- z6J1>&5ng}y?Kh`Zvq&!WVqcTUAuqc)2Um9lC>tM@H!S^&1p}|7&Y%Rzyj6 z_n$O4G(;sOB~)2iA@3rQ2u)8-Q96}^fI*s@o24B)cRd9wMSHJa{i$$^SYBvuZlba> z9|eO!Xg?;d;yye)LNl|o%3ks8Bit~i(~A8g;bgkg{bq{=ijgL`|ArA zgaKrvsmSG`)|M8rRDU2K8qY!iwuIa5Hs8TQHh%cv;^JZ|_4&w)-(pzH^=EUoY zd+|ulmV$|^s;a1A(wYVm8BbUpG!)vUFQE2_TI>AbI zNUzos0DRo)YZ8R0JQ}h7#tE8<;p|(Fl)Yq!jwY&{Q+872*DET$Pdg+Aw-9U zhQ%stX$50MM+Uxi`!@QhgmFttvyj{D+#C%K4^w%08C6tNfh~gOweK;rz3-IA=iIJPPBy#HO*HaCcmN_Lb5GdG1 zdLaO1dJhICxp<6g1$mX_1t032UWThwyvG5RXlF znDvX4e0XM{vtr3)TITKV%o0MSo43cJ*i#LAJsuaQW|kmV{M!|}owyXmLePqNvskj{ z?e8)zm}$wNb9zxXmT6+i?DL@R0P=|KbC1VOTfw0A0hzx`t8&cu^aaR^eKsIDW=yZn zBQv1upMSqhb=7`^p-v^SVgVov=tI510xpEYR1Qq>cnsXa8&@N$Y$6*6$*~gE$V2Sb z?rS|%i~Vdt@**_$sS`ZFc#)9g5)UU`yxdJLr$Zt|1E@P5-AzAU_(g z7k;}$6I0XJ!`%MK{f}XtQv@oQSy_O}vNCZ?IevMQUG3ZH>+?T|)-NCGq%cZ>fuRw4 z=3s|dj|JkQx*yEC9z_x>FoYBk!gq?Q7M^Pu(Og?BMxv-YA~Xr@IEwy4S?EV*^`bWI zzSavZT_WfJ@YLPYi}%;XngBn=qA?M;35B#gBPv&;`@0HKjy$nv=MJhwN_WB)E)>i$ zRN=moV(QqthaTVaFu6hJ9L7)V-zx%-;=WT~S0^s*cw{#U?oGo~=7m0#FJ zyk9zPSQj*W2QoCrnp{n6)=e3PR|lBR&do2B;V=i*@4-t4pRQQfMb!%U%;^9TC2?NaYdT@H?#qr50UgN>!O^2?Pb0x;s&~#P8 zRM(gPsBvWdQDfYZeO9)ll?0QClzIP2CGjlD6Img31nc`)SzS}jWMt+iCBXnR1u+j^ z@sE*py)2{*H0*nf7$z-J89+0F?9x(Ny4! Q-T(jq07*qoM6N<$f {% endif %}
-
-
 
- {% block bg %} - {% endblock %} -
-
-