コード例 #1
0
    def enabled_date(self):
        """docstring for enable_date"""

        de = ''
        if ru_strftime(format=u"%Y", date=self.date_end) != "9999":
            de = u" по %s" % ru_strftime(format=u"%d.%m.%Y", date=self.date_end)
        return u"c {0}{1}".format(ru_strftime(format=u"%d.%m.%Y", date=self.date_start), de)
コード例 #2
0
def date_ru(date, format):
    from pytils.dt import ru_strftime
    if hasattr(settings, format):
        return ru_strftime(format=getattr(settings, format),
                           date=date,
                           inflected=True)
    return ru_strftime(date=date)
コード例 #3
0
ファイル: map.py プロジェクト: naskoro/horosh
    def date(self):
        date, format = '', ''
        f_day, f_month, f_year = u'%d ', u'%B ', u'%Y'

        if self.start.year == self.finish.year:
            date = ru_strftime(f_year, date=self.start)
        else:
            format = f_year

        if self.start.month == self.finish.month:
            date = ru_strftime(f_month, date=self.start, inflected=True) + date
        else:
            format = f_month + format

        if self.start.day == self.finish.day:
            date = ru_strftime(f_day, date=self.start) + date
        else:
            format = f_day + format

        if format:
            date = '%s - %s %s' % (
                ru_strftime(format, date=self.start, inflected=True),
                ru_strftime(format, date=self.finish, inflected=True),
                date
            )

        return date
コード例 #4
0
    def date(self):
        date, format = '', ''
        f_day, f_month, f_year = u'%d ', u'%B ', u'%Y'

        if self.start.year == self.finish.year:
            date = ru_strftime(f_year, date=self.start)
        else:
            format = f_year

        if self.start.month == self.finish.month:
            date = ru_strftime(f_month, date=self.start, inflected=True) + date
        else:
            format = f_month + format

        if self.start.day == self.finish.day:
            date = ru_strftime(f_day, date=self.start) + date
        else:
            format = f_day + format

        if format:
            date = '%s - %s %s' % (
                ru_strftime(format, date=self.start, inflected=True),
                ru_strftime(format, date=self.finish, inflected=True), date)

        return date
コード例 #5
0
ファイル: models.py プロジェクト: banabana/fsb
 def enabled_date(self):
     """docstring for enable_date"""
     
     if ru_strftime(format=u"%Y", date=self.date_end) == "2099":
         de = ""
     else:
         de = " по %s" % ru_strftime(format=u"%d.%m.%Y", date=self.date_end)
     return u"c %s%s" % (ru_strftime(format=u"%d.%m.%Y", date=self.date_start), de)
コード例 #6
0
ファイル: models.py プロジェクト: yablochkin/homepage
 def get_date(self):
     '''
     Formated date
     '''
     today = datetime.date.today()
     if today.year == self.created.year:
         return dt.ru_strftime(u'%d %B', self.created, inflected=True)
     else:
         return dt.ru_strftime(u'%B %Y', self.created)
コード例 #7
0
ファイル: report_helper.py プロジェクト: yelizariev/odoo-ru
 def ru_date2(self, date):
     if date and date != 'False':
         return dt.ru_strftime(u'%d %B %Y г.',
                               date=datetime.strptime(
                                   date, "%Y-%m-%d %H:%M:%S"),
                               inflected=True)
     return ''
コード例 #8
0
ファイル: pytils_dt.py プロジェクト: octoberweb/klev
def ru_strftime(date, format="%d.%m.%Y", inflected_day=False, preposition=False):
    """
    Russian strftime, formats date with given format.

    Value is a date (supports datetime.date and datetime.datetime),
    parameter is a format (string). For explainings about format,
    see documentation for original strftime:
    http://docs.python.org/lib/module-time.html

    Examples::
        {{ some_date|ru_strftime:"%d %B %Y, %A" }}
    """
    try:
        uformat = utils.provide_unicode(format, encoding, default=u"%d.%m.%Y")
        ures = dt.ru_strftime(uformat,
                              date,
                              inflected=True,
                              inflected_day=inflected_day,
                              preposition=preposition)
        res = utils.provide_str(ures, encoding)
    except Exception, err:
        # because filter must die silently
        try:
            default_date = date.strftime(format)
        except Exception:
            default_date = str(date)
        res = default_value % {'error': err, 'value': default_date}
コード例 #9
0
ファイル: pytils_dt.py プロジェクト: wswld/pytils
def ru_strftime(date,
                format="%d.%m.%Y",
                inflected_day=False,
                preposition=False):
    """
    Russian strftime, formats date with given format.

    Value is a date (supports datetime.date and datetime.datetime),
    parameter is a format (string). For explainings about format,
    see documentation for original strftime:
    http://docs.python.org/lib/module-time.html

    Examples::
        {{ some_date|ru_strftime:"%d %B %Y, %A" }}
    """
    try:
        res = dt.ru_strftime(format,
                             date,
                             inflected=True,
                             inflected_day=inflected_day,
                             preposition=preposition)
    except Exception as err:
        # because filter must die silently
        try:
            default_date = date.strftime(format)
        except Exception:
            default_date = str(date)
        res = default_value % {'error': err, 'value': default_date}
    return res
コード例 #10
0
ファイル: wget-1tv.py プロジェクト: shvechikov/wget-1tv
def get_news():
    print 'Fetching %s...' % NEWS_ARCHIVE_LINK

    r = requests.get(NEWS_ARCHIVE_LINK)
    et = etree.HTML(r.text)
    blocks = et.xpath('//div[@class="n_day-video"]/ul/li/div[@class="low"]')

    news = []

    for block in blocks:
        name = block.xpath('div[@class="video_txt"]/a/text()')[0]
        link = block.xpath('a/@href')[0]

        _, date, number = link.rsplit('/', 2)

        number = int(number)

        date = date.split('.')
        date = map(int, date)
        date = reversed(date)
        date = datetime.date(*date)

        date_ru = ru_strftime(format=u'%d %B %Y', date=date, inflected=True)

        news.append({
            'link': link,
            'name': name,
            'date': date,
            'date_ru': date_ru,
            'number': number,
        })

    news.sort(key=lambda new: (new['date'], new['number']))

    return news
コード例 #11
0
ファイル: cms_plugins.py プロジェクト: BystryakovSimon/uaviac
    def render(self, context, instance, placeholder):

        context.update({
            'schedule'    : SchedulePartTime.objects.all().order_by("-id")[0],
            'schedule_date' : dt.ru_strftime(u"%d %B", SchedulePartTime.objects.all().order_by("-id")[0].date, inflected=True),
            'object'      : instance,
            'placeholder' : placeholder,
        })
        return context
コード例 #12
0
ファイル: simpleinvoice.py プロジェクト: temaput/drawinvoice
    def setupTemplates(self):
        _D = lambda x: format_decimal(x, locale="ru_RU")
        _C = lambda x: format_decimal(x, format='#,##0.00', locale="ru_RU")

        self.templates.warn = u"""Внимание! Оплата данного счета означает согласие с условиями поставки товара. Уедомление об оплате
        обязательно. В противном случае не гарантируется наличие товара на складе. Товар отпускается по факту
        прихода денег на р/с Поставщика. самовывозом при наличии доверенности и паспорта"""

        def memberTemplate(m):
            res = u"<b>{m.name}"
            if m.INN:
                res += u", ИНН {m.INN}"
            if m.KPP:
                res += u", КПП {m.KPP}"
            res += u", {m.address}"
            if m.tel:
                res += u", тел.: {m.tel}</b>"
            return res.format(m=m)

        self.templates.memberTemplate = memberTemplate

        def itemTemplate(item):
            pStyle = self.param.minStyle
            return self.Line(item.position, Paragraph(item.name, pStyle),
                             _D(item.quantity), item.units, _C(item.price),
                             _C(item.amount))

        self.templates.itemTemplate = itemTemplate

        self.templates.amountTemplate = lambda amount, due: Paragraph(
            u"Всего наименований {amount}, на сумму {due} руб.".format(
                amount=_D(amount), due=_C(due)), self.param.normalStyle)

        def spellTotal(total):
            template = u"{rubles} {kopnum:02d} {kopstr}"
            from pytils import numeral
            n = {}
            n['rubles'] = numeral.rubles(int(total)).capitalize()
            n['kopnum'] = int(total * 100) - int(total) * 100
            n['kopstr'] = numeral.choose_plural(
                n['kopnum'], (u"копейка", u"копейки", u"копеек"))
            return template.format(**n)

        self.templates.spellTotal = lambda due: Paragraph(
            u"<b>{}</b>".format(spellTotal(due)), self.param.normalStyle)

        self.templates.totalsTableTemplate = lambda total, vat, due: (
            ("", u"Итого:", _C(total)),
            ("", u"В том числе НДС:", _C(vat) if vat else u"Без НДС"),
            ("", u"Всего к оплате:", _C(due)),
        )

        from pytils.dt import ru_strftime
        self.templates.invoiceTitle = lambda invoiceNum: \
                u"Счет на оплату №{} от {}".format(str(invoiceNum),
                        ru_strftime(u"%d %B %Y", inflected=True,
                            date=self.date))
コード例 #13
0
ファイル: template_filters.py プロジェクト: vanpav/top-24.su
def pretty_date(date):
    now_year = datetime.now().year
    year = date.year

    if now_year == year:
        format = '%d %B'
    else:
        format = '%d %B %Y'

    return ru_strftime(format=format, date=date, inflected=True)
コード例 #14
0
    def get_period_display(self):
        if not self.period_date:
            return self.period

        lang = get_language()
        if self.period == 'week':
            if lang == 'ru':
                return ru_strftime(u'за нед. до %d %B',
                                   self.period_date,
                                   inflected=True)
            else:
                return self.period_date.strftime('a week before %B, %d')
        elif self.period == 'month':
            if lang == 'ru':
                return ru_strftime(u'%B', self.period_date)
            else:
                return self.period_date.strftime('%B')
        elif self.period == 'quarter':
            return u'%s %s' % (self.QUARTERS[(self.period_date.month - 1) / 3 +
                                             1], self.period_date.year)
コード例 #15
0
ファイル: date_between.py プロジェクト: vden/TsoguNG
def date_between(start_date, end_date, show_prep=True, always_show_year=False, fmt1=u"%d %B", fmt2=u"%d %B %Y г."):
    """
    Допустимые форматы: 
    "YYYY-MM-DD HH:MM:SS.ssssss+HH:MM",
    "YYYY-MM-DD HH:MM:SS.ssssss",
    "YYYY-MM-DD HH:MM:SS+HH:MM",
    "YYYY-MM-DD HH:MM:SS"
    """

    try:
        if not isinstance(start_date, datetime):
            start_date = parseDateTime(start_date)

        if start_date.day == 2: prep = u'со'
        else: prep = u'с'  
    
        if (end_date is None) or (end_date == start_date):
            if not show_prep: prep = u''
            return u"%s %s"%(prep, 
                           ru_strftime(fmt2, start_date, inflected=True))

        if not isinstance(end_date, datetime):
            end_date = parseDateTime(end_date)

        if start_date.year == end_date.year:
            fmt = fmt1
        else:
            fmt = fmt2
        
        if always_show_year:
            end_fmt = fmt2
        else:
            end_fmt = fmt

        return u"%s %s по %s"%(prep, 
                           ru_strftime(fmt, start_date, inflected=True), 
                           ru_strftime(end_fmt, end_date, inflected=True))
    except Exception, E:
        return unicode(E)
コード例 #16
0
ファイル: parser.py プロジェクト: Giyyan/upink_modules
    def _get_date(date):
        pattern = '%Y-%m-%d'
        if '/' in date:
            #date_list = str(date).split('/')
            #d = datetime.date(int(date_list[2]), int(date_list[1]), int(date_list[0]))
            #d = datetime.strptime(str(date), '%d/%m/%Y')
            pattern = '%d/%m/%Y'
        #elif '-' in date:
            #date_list = str(date).split('-')
            #d = datetime.date(int(date_list[0]), int(date_list[1]), int(date_list[2]))

        d = datetime.strptime(str(date), pattern)
        result = dt.ru_strftime(u"%d %B %Y", d, inflected=True)
        return result
コード例 #17
0
ファイル: main.py プロジェクト: mishanayy/paidServices
    def printToWord(self):
            ### Определение переменных для замены в word документе
        num_dogovor = self.lineEdit_NumDogovor.text() # Номер договора
        receipt = self.lineEdit_NumReceipt.text() # Номер квитанции
        fio = self.lineEdit_Fio.text() # ФИО пациента
        fio_short = self.shorten_to_initials(self.lineEdit_Fio.text()) # Фамилия и инициалы пациента
        document_name = self.comboBox_Documents.currentText() # Название документа удостоверяющего личность
        doc_number = self.lineEdit_NumDoc.text() # № документа удостоверяющего личность
        address = self.lineEdit_Address.text() # Адрес
        usluga = self.comboBox_Usluga.currentText() # Название услуги
        summ = self.lineEdit_PriceUsluga.text() # Сумма
        summ_word = numeral.in_words(int(summ)) # Сумма прописью
        date_mini = dt.ru_strftime('%d.%m.%Y') # Форматированные текущая дата 01.01.2020
        date_full = dt.ru_strftime('%d %B %Y', inflected=True) # Форматированные текущая дата 01 января 2020

            ### Формирование и сохранение документа word
        doc_name = '{}_{}_{}_{}'.format(fio, date_full, num_dogovor, receipt) # Формирование имени документа ФИО_Дата.docx
        template = r"res\usluga_template.docx"
        document = MailMerge(template)
        #print(document.get_merge_fields()) # Какие поля используются в шаблоне
        document.merge(
            num_dogovor=num_dogovor,
            receipt = receipt,
            fio=fio,
            fio_short=fio_short,
            document=document_name,
            doc_number=doc_number,
            address=address,
            usluga=usluga,
            summ=summ,
            summ_word = summ_word,
            date_full = date_full,
            date_mini = date_mini,
        )
        document.write("docx\{}.docx".format(doc_name,))
        os.startfile("docx\{}.docx".format(doc_name,)) # Запуск word документа и печать - os.startfile("res\generated_usluga.docx",  "print")
コード例 #18
0
ファイル: tsogu_comments.py プロジェクト: vden/TsoguNG
	def html_thread(ul):
		html = u"<ul>"
		for li in ul:
			html += u'''<li><div class='comment'>
				<div class='comment-title'><b>%(username)s</b>, %(date)s написал(а):
					<a href="javascript:;" comment_id='%(id)s' class="local-link add_comment">Комментировать</a>
				</div>
				%(text)s</div>'''%{
						'username': li.username,
						'date': dt.ru_strftime(u"%d %B %Y г. в %H:%M", li.date_created, inflected=True),
						'text': li.text,
						'id': li.id}
			if li.id in thread:
				html += html_thread(thread[li.id])
			html += u"</li>"
		html += u"</ul>"
		return html
コード例 #19
0
ファイル: views_2.py プロジェクト: v23vd/repo
    def get_down_on_date(self, **kwargs):
        today = date.today()
        down = []
        current_locale = locale.getdefaultlocale()
        for month_num in range(12):
            next_date = today + relativedelta(months=month_num)
            try:
                locale.setlocale(locale.LC_ALL, 'en_US.utf8')  # locale
            except Exception:
                try:
                    locale.setlocale(locale.LC_ALL, 'en')
                except Exception as e:
                    print('An error setlocale: {0}'.format(e))
            en_month = next_date.strftime('%B')
            try:
                locale.setlocale(locale.LC_ALL, current_locale)  # locale
            except Exception:
                try:
                    locale.setlocale(locale.LC_ALL, 'ru')
                except Exception as e:
                    print('An error setlocale: {0}'.format(e))
            ru_month = ru_strftime('%B', next_date)  # locale
            year = next_date.year
            url = reverse('tours_by_date',
                          kwargs={
                              'cities_out': kwargs.get('cities_out', '-'),
                              'cities_in': kwargs.get('cities_in', '-'),
                              'on_date': '%s-%d' % (en_month, year),
                              'countries_in': kwargs.get('countries_in', '-'),
                          })
            # down.append((url, '%s %d' % (ru_month, year,)))  # locale
            down.append((url, next_date))  # locale
        # locale.setlocale(locale.LC_ALL, '.'.join(current_locale))  # locale

        for add_year in range(2):
            url = reverse('tours_by_year',
                          kwargs={
                              'cities_out': kwargs.get('cities_out', '-'),
                              'cities_in': kwargs.get('cities_in', '-'),
                              'on_year': today.year + add_year,
                              'countries_in': kwargs.get('countries_in', '-'),
                          })
            down.append((url, today.year + add_year))

        return down
コード例 #20
0
ファイル: utils.py プロジェクト: ramusus/django_utils
def ru_strftime_month(date, format="%B", inflected_day=False, preposition=False):
    """
    Cover for ru_strftime from pytils. Differences: inflected=False and another format by default
    """
    try:
        uformat = pseudo_unicode(format, encoding, u"%d.%m.%Y")
        ures = dt.ru_strftime(uformat,
                              date,
                              inflected=False,
                              inflected_day=inflected_day,
                              preposition=preposition)
        res = pseudo_str(ures, encoding)
    except Exception, err:
        # because filter must die silently
        try:
            default_distance = "%s seconds" % str(int(time.time() - from_time))
        except Exception:
            default_distance = ""
        res = default_value % {'error': err, 'value': default_distance}
コード例 #21
0
ファイル: tsogu_comments.py プロジェクト: vden/TsoguNG
    def html_thread(ul):
        html = u"<ul>"
        for li in ul:
            html += u'''<li><div class='comment'>
				<div class='comment-title'><b>%(username)s</b>, %(date)s написал(а):
					<a href="javascript:;" comment_id='%(id)s' class="local-link add_comment">Комментировать</a>
				</div>
				%(text)s</div>''' % {
                'username':
                li.username,
                'date':
                dt.ru_strftime(
                    u"%d %B %Y г. в %H:%M", li.date_created, inflected=True),
                'text':
                li.text,
                'id':
                li.id
            }
            if li.id in thread:
                html += html_thread(thread[li.id])
            html += u"</li>"
        html += u"</ul>"
        return html
コード例 #22
0
ファイル: models.py プロジェクト: kpx13/cargo
 def __unicode__(self):
     return u'Заказ %s от %s' % (self.id, dt.ru_strftime(u"%d %B %Y", self.order_date))
コード例 #23
0
ファイル: disposition.py プロジェクト: Giyyan/upink_modules
    def generate(self, cr, user, ids, context=None):
        disposition_id = ids
        if isinstance(ids, (list, tuple)):
            disposition_id = ids[0]
        disposition = self.read(cr, user, disposition_id, [])

        category = self.pool.get('cd.disposition.category').read(cr, user, disposition['category_id'][0], ['template_id'])
        if category['template_id']:
            template = self.pool.get('ir.attachment').read(cr, user, category['template_id'][0],
                                                           ['store_fname', 'parent_id'])
            dbro = self.pool.get('document.directory').read(cr, user, template['parent_id'][0], ['storage_id'], context)
            storage = self.pool.get('document.storage').read(cr, user, dbro['storage_id'][0], ['path'])

            filepath = os.path.join(storage['path'], template['store_fname'])
            file_data = open(filepath, 'rb').read()
            template_io = StringIO()
            template_io.write(file_data)
            serializer = OOSerializer(template_io)
            basic = Template(source=template_io, serializer=serializer)

            o = {
                'disposition_number': disposition['id'],
                'disposition_date': dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['disposition_date'], '%Y-%m-%d'), inflected=True),
                'from_date': '-',
                'on_date': '-',
                'from_date_second': '-',
                'on_date_second': '-',
                'not_later_date': '-',
                'not_later_date_second': '-',
                'to_date': '-',
                'financier_id': '-',
                'period_id': '-',
                'seeing': disposition['seeing'] or '-',
                'working_off_dates': disposition['working_off_dates'] or '-',
                'employee_id': '-',
                'job_id': '-',
                'next_job_id': '-',
                'teacher_job_id': '-',
                'department_id': '-',
                'next_department_id': '-',
                'teacher_department_id': '-',
                'trip': disposition['trip'] or '-',
                'trip_place': disposition['trip_place'] or '-',
                'grade_id': '-',
                'reason': disposition['reason'] or '-',
                'remark': disposition['remark'] or '-',
                'direction_name': disposition['direction_name'] or '-',
                'at_rate': int(disposition['at_rate']) or '-',
                'date_ot': '-',
                'next_attestation': '-',
                'motive_rewarding': disposition['motive_rewarding'] or '-',
                'promotion_type': disposition['promotion_type'] or '-',
                'teacher_id': '-',
                'financing_source': disposition['financing_source'] or '-',
                'commission_ids': '-',
                'term': disposition['term'] or '-',
                'term_str': disposition['term_str'] or '-',
                'amount': disposition['amount'] or '-',
                'amount_str': to_grn(disposition['at_rate']),
                'statement_date': '-',
                'instate_date': '-',
                'salary': disposition['salary'] or '-',
                'salary_per': disposition['salary_per'] or '-',
                'variable': disposition['variable'] or '-',
                'variable_per': disposition['variable_per'] or '-',
                'post_probation_grade_id': '-',
                'probation_grade_id': '-',
                'duration_probation': disposition['duration_probation'] or '-',
                'year': disposition['year'] or '-',
                'no_work': disposition['no_work'] or '-',
                'work_day': disposition['work_day'] or '-',
                'fio': disposition['fio'] or '-',
                'schedule_date': '-',
                'commission_date': '-',
                'set_date': '-',
                'list_date': '-',
                'protocol_date': '-',
                'top_date': '-',
                'result_date': '-'
            }

            if disposition['from_date']:
                o['from_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['from_date'], '%Y-%m-%d'), inflected=True)
            if disposition['on_date']:
                o['on_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['on_date'], '%Y-%m-%d'), inflected=True)
            if disposition['from_date_second']:
                o['from_date_second'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['from_date_second'], '%Y-%m-%d'), inflected=True)
            if disposition['on_date_second']:
                o['on_date_second'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['on_date_second'], '%Y-%m-%d'), inflected=True)
            if disposition['not_later_date']:
                o['not_later_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['not_later_date'], '%Y-%m-%d'), inflected=True)
            if disposition['not_later_date_second']:
                o['not_later_date_second'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['not_later_date_second'], '%Y-%m-%d'), inflected=True)
            if disposition['to_date']:
                o['to_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['to_date'], '%Y-%m-%d'), inflected=True)
            if disposition['date_ot']:
                o['date_ot'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['date_ot'], '%Y-%m-%d'), inflected=True)
            if disposition['next_attestation']:
                o['next_attestation'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['next_attestation'], '%Y-%m-%d'), inflected=True)
            if disposition['statement_date']:
                o['statement_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['statement_date'], '%Y-%m-%d'), inflected=True)
            if disposition['instate_date']:
                o['instate_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['instate_date'], '%Y-%m-%d'), inflected=True)
            if disposition['schedule_date']:
                o['schedule_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['schedule_date'], '%Y-%m-%d'), inflected=True)
            if disposition['commission_date']:
                o['commission_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['commission_date'], '%Y-%m-%d'), inflected=True)
            if disposition['set_date']:
                o['set_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['set_date'], '%Y-%m-%d'), inflected=True)
            if disposition['list_date']:
                o['list_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['list_date'], '%Y-%m-%d'), inflected=True)
            if disposition['protocol_date']:
                o['protocol_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['protocol_date'], '%Y-%m-%d'), inflected=True)
            if disposition['top_date']:
                o['top_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['top_date'], '%Y-%m-%d'), inflected=True)
            if disposition['result_date']:
                o['result_date'] = dt.ru_strftime(u"%d %B %Y", datetime.strptime(disposition['result_date'], '%Y-%m-%d'), inflected=True)
            if disposition['financier_id']:
                o['financier_id'] = disposition['financier_id'][1]
            if disposition['employee_id']:
                o['employee_id'] = disposition['employee_id'][1]
            if disposition['job_id']:
                o['job_id'] = disposition['job_id'][1]
            if disposition['teacher_id']:
                o['teacher_id'] = disposition['teacher_id'][1]
            if disposition['next_job_id']:
                o['next_job_id'] = disposition['next_job_id'][1]
            if disposition['teacher_job_id']:
                o['teacher_job_id'] = disposition['teacher_job_id'][1]
            if disposition['department_id']:
                o['department_id'] = disposition['department_id'][1]
            if disposition['next_department_id']:
                o['next_department_id'] = disposition['next_department_id'][1]
            if disposition['teacher_department_id']:
                o['teacher_department_id'] = disposition['teacher_department_id'][1]
            if disposition['grade_id']:
                o['grade_id'] = disposition['grade_id'][1]
            if disposition['post_probation_grade_id']:
                o['post_probation_grade_id'] = disposition['post_probation_grade_id'][1]
            if disposition['probation_grade_id']:
                o['probation_grade_id'] = disposition['probation_grade_id'][1]
            if disposition['commission_ids']:
                o['commission_ids'] = ', '.join([x['name'] for x in self.pool.get('res.users').read(cr, 1, disposition['commission_ids'], ['name'])])
            if disposition['period_id']:
                d = datetime.strptime('2013/10', '%Y/%m').strftime('%B %Y')
                o['period_id'] = tools.ustr(d)

            filename = 'Распоряжение № {0}'.format(disposition['id'],)

            odt_file = os.path.join(storage['path'], 'tmp.odt')
            file(odt_file, 'wb').write(basic.generate(o=o).render().getvalue())

            doc_id = self.pool.get('ir.attachment').create(cr, user, {
                'name': '{0}.odt'.format(filename, ),
                'datas': base64.b64encode(open(odt_file, 'rb').read()),
                'datas_fname': '{0}.odt'.format(filename, ),
                'res_model': self._name,
                'res_id': disposition['id']
            })
            #self.write(cr, user, [disposition['id']], {'doc_id': doc_id})
            return doc_id
        return False
コード例 #24
0
ファイル: models.py プロジェクト: alrusdi/queue
 def __unicode__(self):
     return dt.ru_strftime(u'%d %B %Y  (%a)', self.date, inflected=True) if self.date else u'--'
コード例 #25
0
ファイル: views.py プロジェクト: Entropius/recordbook
def index(request):
    '''
        Очень обширная страница для выставления и просмотра оценок
    '''

    def _get_month_key(dt):
        return int("%d%s" % (dt.year, str(dt.month).rjust(2, "0")))

    render = {}
    if request.user.type == 'Parent':
        start = date.today() - timedelta(weeks = 2)
        end = date.today() + timedelta(days = 1)
        if request.method == 'GET':
            render['form'] = form = StatForm()
        else:
            render['form'] = form = StatForm(request.POST)
            if form.is_valid():
                start = form.cleaned_data['start']
                end = form.cleaned_data['end']

        render.update(request.user.current_pupil.get_all_marks(start, end))

    elif request.user.type == 'Teacher':
        import demjson

        if request.GET.get('set_current_grade', False):
            grade = get_object_or_404(Grade, id = request.GET.get('set_current_grade', 0))
            if grade not in request.user.grades.all():
                raise Http404(u'Нет такого класса')
            request.user.current_grade = grade
            request.user.save()

        if request.GET.get('set_current_subject', False):
            subject = get_object_or_404(Subject, id = request.GET.get('set_current_subject', 0))
            if subject not in request.user.subjects.all():
                raise Http404(u'Нет такого предмета')
            request.user.current_subject = subject
            request.user.save()

        if not request.user.current_grade:
            if request.user.get_grades_for_marks():
                request.user.current_grade = request.user.get_grades_for_marks()[0]
            else:
                messages.error(request, u'К вам не прикреплено классов')
                return render_to_response(
                        '~marks/%s/index.html' % request.user.type.lower(),
                        render,
                        context_instance = RequestContext(request))


        render['lesson_form'] = LessonForm()

        try:
            request.user.current_grade.get_pupils_for_teacher_and_subject(
                    request.user, request.user.current_subject
            )
        except PlaningError:
            messages.error(request, u'В выбранном классе нет учеников')
            return render_to_response(
                    '~marks/%s/index.html' % request.user.type.lower(),
                    render,
                    context_instance = RequestContext(request))

        from pytils import dt
        date_start = date.today() - timedelta(days = 15)
        date_end = date.today() + timedelta(days = 1)
        render['stat_form'] = form = StatForm(request.GET)
        if form.is_valid():
            date_start = form.cleaned_data['start']
            date_end = form.cleaned_data['end']
        else:
            render['stat_form'] = StatForm()

        lessons_range = []
        render['monthes'] = monthes = {}
        month = date.today() - timedelta(days=365)
        while month<date.today() + timedelta(days=30):
            monthes[_get_month_key(month)] = ('', 0)
            month += timedelta(weeks=4)

        kwargs = {
            'subject': request.user.current_subject,
            'grade': request.user.current_grade
        }
        conn = Connection.objects.filter(teacher=request.user, **kwargs)
        if not conn:
            messages.error(request, u'Нет связок в выбранном сочетании предмет-класс')
            return render_to_response(
                    '~marks/%s/index.html' % request.user.type.lower(),
                    render,
                    context_instance = RequestContext(request))

        kwargs4lesson = {'teacher': request.user,
#                         'attendance__subject': request.user.current_subject,
                         'date__gte': date_start,
#                         'attendance__grade': request.user.current_grade,
                         'date__lte': date_end
        }

        args = [Q(attendance__group=c.connection) for c in conn]
        args.append(Q(attendance__group="0"))
        args.append(Q(attendance=None))

        filter_arg = \
            Q(attendance__subject=request.user.current_subject, attendance__grade=request.user.current_grade) \
            | Q(resultdate__grades=request.user.current_grade, grade=request.user.current_grade, subject=request.user.current_subject)

#        filter_args.append(Q(attendance__subject=request.user.current_subject, attendance__grade=request.user.current_grade))
#        filter_args.append(Q(resultdate__subject=request.user.current_subject, resultdate__grade=request.user.current_grade))

        last_col = []
        last_date = None
        for lesson in Lesson.objects.filter(reduce(lambda x, y: x | y, args), filter_arg, **kwargs4lesson).order_by('date'):

            new_range = lesson.attendance==None or not lesson.attendance.subject.groups or \
                        (len(last_col) == conn.count() and conn[0].connection != "0") or \
                        lesson.attendance.group == '0' or last_date != lesson.date

            if new_range:
                monthes[_get_month_key(lesson.date)] = (dt.ru_strftime(u'%B', lesson.date),
                                              monthes[_get_month_key(lesson.date)][1] + 1)
                if len(last_col):
                    lessons_range.append(last_col)
                last_col = []
            last_col.append(lesson)
            last_date = lesson.date
        if len(last_col):
            lessons_range.append(last_col)

        for i in monthes.keys():
            if monthes[i][1] == 0:
                del monthes[i]
        render['lessons'] = lessons_range

    return render_to_response(
            '~marks/%s/index.html' % request.user.type.lower(),
            render,
            context_instance = RequestContext(request))
コード例 #26
0
def date_ru(date, format):
    from pytils.dt import ru_strftime
    if hasattr(settings, format):
        return ru_strftime(format=getattr(settings, format), date=date, inflected=True)
    return ru_strftime(date=date)
コード例 #27
0
ファイル: models.py プロジェクト: alrusdi/queue
 def __unicode__(self):
     return dt.ru_strftime(u'%d %B %Y  (%a)', self.date,
                           inflected=True) if self.date else u'--'
コード例 #28
0
 def _get_date(date):
     date_list = str(date).split('/')
     d = datetime.date(int(date_list[2]), int(date_list[1]), int(date_list[0]))
     result = dt.ru_strftime(u"%d %B %Y", d, inflected=True)
     return result
コード例 #29
0
ファイル: filetools.py プロジェクト: povarisovma/actof
def get_current_date():
    return str(dt.ru_strftime("%d %B %Y" + ' г.', inflected=True))
コード例 #30
0
ファイル: simpleinvoice.py プロジェクト: AlfiyaZi/flower-SHOP
    def setupTemplates(self):
        _D = lambda x: format_decimal(x, locale="ru_RU")
        _C = lambda x: format_decimal(x, format='#,##0.00', locale="ru_RU")

        self.templates.warn = u"""Внимание! Оплата данного счета означает согласие с условиями поставки товара. Уедомление об оплате
        обязательно. В противном случае не гарантируется наличие товара на складе. Товар отпускается по факту
        прихода денег на р/с Поставщика. самовывозом при наличии доверенности и паспорта"""

        def memberTemplate(m):
            res = u"<b>{m.name}"
            if m.INN:
                res += u", ИНН {m.INN}"
            if m.KPP:
                res += u", КПП {m.KPP}"
            res += u", {m.address}"
            if m.tel:
                res += u", тел.: {m.tel}</b>" 
            return res.format(m=m)
        self.templates.memberTemplate = memberTemplate

        def itemTemplate(item):
            pStyle = self.param.minStyle
            return self.Line(
                    item.position,
                    Paragraph(item.name, pStyle),
                    _D(item.quantity),
                    item.units,
                    _C(item.price),
                    _C(item.amount)
                    )
        self.templates.itemTemplate = itemTemplate

        self.templates.amountTemplate = lambda amount, due: Paragraph(
                u"Всего наименований {amount}, на сумму {due} руб.".format(
                    amount=_D(amount), due=_C(due)), self.param.normalStyle)

        def spellTotal(total):
            template = u"{rubles} {kopnum:02d} {kopstr}"
            from pytils import numeral
            n = {}
            n['rubles'] = numeral.rubles(int(total)).capitalize()
            n['kopnum'] = int(total * 100) - int(total)*100
            n['kopstr'] = numeral.choose_plural(
                    n['kopnum'], 
                    (u"копейка", u"копейки", u"копеек")
                    )
            return template.format(**n)

        self.templates.spellTotal = lambda due: Paragraph(
                u"<b>{}</b>".format(spellTotal(due)), 
                self.param.normalStyle)

        self.templates.totalsTableTemplate = lambda total, vat, due: (
                        ("", u"Итого:", _C(total)),
                        ("", u"В том числе НДС:", _C(vat) if vat else u"Без НДС"),
                        ("", u"Всего к оплате:", _C(due)),
                        )
        
        from pytils.dt import ru_strftime
        self.templates.invoiceTitle = lambda invoiceNum: \
                u"Счет на оплату №{} от {}".format(str(invoiceNum), 
                        ru_strftime(u"%d %B %Y", inflected=True, 
                            date=self.date))
コード例 #31
0
ファイル: views.py プロジェクト: gmist/3dhero.ru
def date_str(d):
    return dt.ru_strftime(u"%d %B %Y в %H:%M", d, inflected=True)
コード例 #32
0
ファイル: report_helper.py プロジェクト: VbossEkat/MyAddons
def ru_date(self, date):
    if date and date != 'False':
        return dt.ru_strftime(u'"%d" %B %Y года', date=datetime.strptime(date, "%Y-%m-%d"), inflected=True)
    return ''
コード例 #33
0
ファイル: models.py プロジェクト: kpx13/cargo
 def __unicode__(self):
     return u'feedback %s от %s' % (self.id, dt.ru_strftime(u"%d %B %Y", self.feedback_date))
コード例 #34
0
ファイル: date.py プロジェクト: svartalf/abakron
def ru_strftime_plain(date, format="%d.%m.%Y"):
    print date
    return ru_strftime(format, date)
コード例 #35
0
def index(request):
    '''
        Очень обширная страница для выставления и просмотра оценок
    '''
    def _get_month_key(dt):
        return int("%d%s" % (dt.year, str(dt.month).rjust(2, "0")))

    render = {}
    if request.user.type == 'Parent':
        start = date.today() - timedelta(weeks=2)
        end = date.today() + timedelta(days=1)
        if request.method == 'GET':
            render['form'] = form = StatForm()
        else:
            render['form'] = form = StatForm(request.POST)
            if form.is_valid():
                start = form.cleaned_data['start']
                end = form.cleaned_data['end']

        render.update(request.user.current_pupil.get_all_marks(start, end))

    elif request.user.type == 'Teacher':
        import demjson

        if request.GET.get('set_current_grade', False):
            grade = get_object_or_404(Grade,
                                      id=request.GET.get(
                                          'set_current_grade', 0))
            if grade not in request.user.grades.all():
                raise Http404(u'Нет такого класса')
            request.user.current_grade = grade
            request.user.save()

        if request.GET.get('set_current_subject', False):
            subject = get_object_or_404(Subject,
                                        id=request.GET.get(
                                            'set_current_subject', 0))
            if subject not in request.user.subjects.all():
                raise Http404(u'Нет такого предмета')
            request.user.current_subject = subject
            request.user.save()

        if not request.user.current_grade:
            if request.user.get_grades_for_marks():
                request.user.current_grade = request.user.get_grades_for_marks(
                )[0]
            else:
                messages.error(request, u'К вам не прикреплено классов')
                return render_to_response(
                    '~marks/%s/index.html' % request.user.type.lower(),
                    render,
                    context_instance=RequestContext(request))

        render['lesson_form'] = LessonForm()

        try:
            request.user.current_grade.get_pupils_for_teacher_and_subject(
                request.user, request.user.current_subject)
        except PlaningError:
            messages.error(request, u'В выбранном классе нет учеников')
            return render_to_response('~marks/%s/index.html' %
                                      request.user.type.lower(),
                                      render,
                                      context_instance=RequestContext(request))

        from pytils import dt
        date_start = date.today() - timedelta(days=15)
        date_end = date.today() + timedelta(days=1)
        render['stat_form'] = form = StatForm(request.GET)
        if form.is_valid():
            date_start = form.cleaned_data['start']
            date_end = form.cleaned_data['end']
        else:
            render['stat_form'] = StatForm()

        lessons_range = []
        render['monthes'] = monthes = {}
        month = date.today() - timedelta(days=365)
        while month < date.today() + timedelta(days=30):
            monthes[_get_month_key(month)] = ('', 0)
            month += timedelta(weeks=4)

        kwargs = {
            'subject': request.user.current_subject,
            'grade': request.user.current_grade
        }
        conn = Connection.objects.filter(teacher=request.user, **kwargs)
        if not conn:
            messages.error(request,
                           u'Нет связок в выбранном сочетании предмет-класс')
            return render_to_response('~marks/%s/index.html' %
                                      request.user.type.lower(),
                                      render,
                                      context_instance=RequestContext(request))

        kwargs4lesson = {
            'teacher': request.user,
            #                         'attendance__subject': request.user.current_subject,
            'date__gte': date_start,
            #                         'attendance__grade': request.user.current_grade,
            'date__lte': date_end
        }

        args = [Q(attendance__group=c.connection) for c in conn]
        args.append(Q(attendance__group="0"))
        args.append(Q(attendance=None))

        filter_arg = \
            Q(attendance__subject=request.user.current_subject, attendance__grade=request.user.current_grade) \
            | Q(resultdate__grades=request.user.current_grade, grade=request.user.current_grade, subject=request.user.current_subject)

        #        filter_args.append(Q(attendance__subject=request.user.current_subject, attendance__grade=request.user.current_grade))
        #        filter_args.append(Q(resultdate__subject=request.user.current_subject, resultdate__grade=request.user.current_grade))

        last_col = []
        last_date = None
        for lesson in Lesson.objects.filter(reduce(lambda x, y: x | y,
                                                   args), filter_arg,
                                            **kwargs4lesson).order_by('date'):

            new_range = lesson.attendance==None or not lesson.attendance.subject.groups or \
                        (len(last_col) == conn.count() and conn[0].connection != "0") or \
                        lesson.attendance.group == '0' or last_date != lesson.date

            if new_range:
                monthes[_get_month_key(lesson.date)] = (dt.ru_strftime(
                    u'%B',
                    lesson.date), monthes[_get_month_key(lesson.date)][1] + 1)
                if len(last_col):
                    lessons_range.append(last_col)
                last_col = []
            last_col.append(lesson)
            last_date = lesson.date
        if len(last_col):
            lessons_range.append(last_col)

        for i in monthes.keys():
            if monthes[i][1] == 0:
                del monthes[i]
        render['lessons'] = lessons_range

    return render_to_response('~marks/%s/index.html' %
                              request.user.type.lower(),
                              render,
                              context_instance=RequestContext(request))
コード例 #36
0
ファイル: models.py プロジェクト: H359/ZavtraRu
 def __unicode__(self):
     return u'%s (%s)' % (self.title, dt.ru_strftime(date=self.pub_date)) 
コード例 #37
0
ファイル: dt.ru_strftime.py プロジェクト: Daiver/translate
import datetime
from pytils import dt

# действие ru_strftime аналогично оригинальному strftime
# только в %a, %A, %b и %B вместо английских названий будут русские

d = datetime.date(2006, 9, 15)

# оригинал
print d.strftime("%d.%m.%Y (%a)")
# -> 15.09.2006 (Fri)

# теперь на русском
# (единственно, что нужно формат строки передавать в unicode
# в то время, как в оригинальном strftime это обязательно str)
print dt.ru_strftime(u"%d.%m.%Y (%a)", d)
# -> 15.09.2006 (пт)

# %A дает полное название дня недели
print dt.ru_strftime(u"%d.%m.%Y (%A)", d)
# -> 15.09.2006 (пятница)

# %B -- название месяца
print dt.ru_strftime(u"%d %B %Y", d)
# -> 15 сентябрь 2006

# ru_strftime умеет правильно склонять месяц (опция inflected)
print dt.ru_strftime(u"%d %B %Y", d, inflected=True)
# -> 15 сентября 2006

# ... и день (опция inflected_day)
コード例 #38
0
 def __unicode__(self):
     return u'№ %s от %s' % (self.id,
                             dt.ru_strftime(u"%d %B %Y", self.request_date))
コード例 #39
0
ファイル: views.py プロジェクト: miha173/recordbook
def index(request):
    '''
        Очень обширная страница, необходимо сделать разделение. 
    '''
    render = {}
    if request.user.type == 'Parent':
        start = date.today() - timedelta(weeks = 2)
        end = date.today() + timedelta(days = 1)
        if request.method == 'GET':
            render['form'] = form = StatForm()
        else:
            render['form'] = form = StatForm(request.POST)
            if form.is_valid():
                start = form.cleaned_data['start']
                end = form.cleaned_data['end']

        render.update(request.user.current_pupil.get_all_marks(start, end))

    elif request.user.type == 'Teacher':
        import demjson

        if request.GET.get('set_current_grade', False):
            grade = get_object_or_404(Grade,
                                      id = request.GET.get('set_current_grade'))
            if grade not in request.user.grades.all():
                raise Http404(u'Нет такого класса')
            request.user.current_grade = grade
            request.user.save()
        
        render['lesson_form'] = LessonForm()
        if request.GET.get('set_lesson', False):
            lesson = get_object_or_404(Lesson,
                                       id = int(request.GET.get('lesson', 0)),
                                       teacher = request.user)
            form = LessonForm(request.GET, instance = lesson)
            if form.is_valid():
                form.save()
            return HttpResponse('ok')
        
        if request.GET.get('get_lesson_info', False):
            lesson = get_object_or_404(Lesson,
                                       id = int(request.GET.get('lesson', 0)),
                                       teacher = request.user)
            return HttpResponse(demjson.encode({'task': lesson.task or '',
                                                'topic': lesson.topic or ''}))
            
        
        if request.GET.get('set_mark', False):
            from templatetags.marks_chart import get_mark
            pupil = get_object_or_404(Pupil,
                                      id = int(request.GET.get('pupil', 0)),
                                      grade = request.user.current_grade)
            lesson = get_object_or_404(Lesson,
                                       id = int(request.GET.get('lesson', 0)),
                                       teacher = request.user)
            mark = unicode(request.GET.get('mark', 0)).lower()
            Mark.objects.filter(pupil = pupil, lesson = lesson).delete()
            m = Mark(pupil = pupil, lesson = lesson)
            tr_id = 'p-%d-%d' % (pupil.id, lesson.id)
            if mark not in ['1', '2', '3', '4', '5', 'n', u'н', '']:
                return HttpResponse(demjson.encode({'id': tr_id, 'mark': 'no'}))
            if mark == '':
                return HttpResponse(demjson.encode({'id': tr_id, 'mark': ''}))
            if mark in [u'n', u'н']:
                m.absent = True
            else:
                m.mark = int(mark)
            m.save()
            return HttpResponse(demjson.encode({'id': tr_id,
                                                'mark': get_mark(pupil, lesson),
                                                'mark_value': str(m).strip(),
                                                'mark_type': m.get_type()
                                                }, encoding = 'utf-8'))
        
        from pytils import dt
        if not request.user.current_grade:
            if request.user.get_grades():
                request.user.current_grade = request.user.get_grades()[0]
                request.user.save()
            else:
                messages.error(request, u'К вам не привязано классов')
                return HttpResponseRedirect('/')
        request.user.current_grade.get_pupils_for_teacher_and_subject(
                request.user, request.user.current_subject
        )
        
        try:
            day, month, year = request.GET.get('date', '').split('.')
            date_start = date(day = day, month = month, year = year)
        except ValueError:
            date_start = date.today()

        lessons_range = []
        render['monthes'] = monthes = {}
        for i in xrange(1, 13):
            monthes[i] = ('', 0)
        
        kwargs = {
            'subject': request.user.current_subject,
            'grade': request.user.current_grade
        }
        conn = Connection.objects.filter(teacher = request.user, **kwargs)
        if not conn:
            raise Http404('No connections')
        conn = conn[0]
        if conn.connection != '0':
            kwargs['group'] = conn.connection

        kwargs4lesson = {}
        for i in xrange(14, -1, -1):
            d = date_start - timedelta(days = i)
            kwargs['workday'] = str(d.weekday()+1)
            if UsalTimetable.objects.filter(**kwargs):
                kwargs4lesson = {'teacher': request.user,
                                 'date': d,
                                 'subject': request.user.current_subject}
                groups = {}
                for lesson in UsalTimetable.objects.filter(**kwargs):
                    groups[lesson.group] = groups.get(lesson.group, 0) + 1
                groups = groups.values()
                if Lesson.objects.filter(grade = request.user.current_grade, **kwargs4lesson).count() != max(groups):
                    for j in xrange(max(groups) - Lesson.objects.filter(**kwargs4lesson).count()):
                        t = Lesson(**kwargs4lesson)
                        t.save()
                        t.grade.add(request.user.current_grade)
                        t.save()
            resultdates = ResultDate.objects.filter(date = d, grades = request.user.current_grade)
            if resultdates:
                resultdate = resultdates[0]
                kwargs4lesson = {
                    'resultdate': resultdate,
                    'grade': request.user.current_grade,
                    'subject': request.user.current_subject,
                    'teacher': request.user
                }
                if not Lesson.objects.filter(**kwargs4lesson):
                    del kwargs4lesson['grade']
                    lesson = Lesson(topic = resultdate.name,
                                    date = resultdate.date,
                                    **kwargs4lesson)
                    lesson.save()
                    lesson.grade.add(request.user.current_grade)
                    lesson.save()

        if len(kwargs4lesson) == 0:
            raise Http404(u'Нет расписания')

        del kwargs4lesson['date']
        kwargs4lesson['date__gte'] = date_start - timedelta(days = 15)
        for lesson in Lesson.objects.filter(**kwargs4lesson).order_by('date'):
            monthes[lesson.date.month] = (dt.ru_strftime(u'%B', lesson.date),
                                          monthes[lesson.date.month][1] + 1)
            lessons_range.append(lesson)

        for i in monthes.keys():
            if monthes[i][1] == 0:
                del monthes[i]
        render['lessons'] = lessons_range
        
    return render_to_response(
            '~marks/%s/index.html' % request.user.type.lower(),
            render,
            context_instance = RequestContext(request))
コード例 #40
0
ファイル: models.py プロジェクト: LinnTroll/hund
 def get_date_human(self):
     if self.date:
         return dt.ru_strftime(u"%d %B %Y", self.date, inflected=True)
     return None
コード例 #41
0
ファイル: extra_tags.py プロジェクト: healfy/restaurant
def ru_date(value):
    if value != '' and value is not None:
        return ru_strftime(format="%d %B %Y %H:%m", date=value, inflected=True)
    return ''
コード例 #42
0
ファイル: models.py プロジェクト: kpx13/h2h
 def __unicode__(self):
     return u'%s от %s' % (self.name, dt.ru_strftime(u"%d %B %Y", self.request_date))
コード例 #43
0
def date_str(d):
    return dt.ru_strftime(u"%d %B %Y в %H:%M", d, inflected=True)
コード例 #44
0
ファイル: pytils_filters.py プロジェクト: mturilin/konoha-cms
def date_inflected(d, date_format):
    return dt.ru_strftime(unicode(date_format), d, inflected=True)
コード例 #45
0
ファイル: report_helper.py プロジェクト: yelizariev/odoo-ru
 def ru_date(self, date):
     if date and date != 'False':
         return dt.ru_strftime(u'"%d" %B %Y года',
                               date=datetime.strptime(date, "%Y-%m-%d"),
                               inflected=True)
     return ''
コード例 #46
0
ファイル: models.py プロジェクト: kpx13/galant
 def __unicode__(self):
     return u"№ %s от %s" % (self.id, dt.ru_strftime(u"%d %B %Y", self.request_date))
コード例 #47
0
    def generate(self, cr, user, ids, context=None):
        contract_id = ids
        if isinstance(ids, (list, tuple)):
            contract_id = ids[0]
        contract = self.read(cr, user, contract_id, [])

        service = self.pool.get('brief.services.stage').read(cr, user, contract['service_id'][0], ['template_id'])
        if service['template_id']:
            template = self.pool.get('ir.attachment').read(cr, user, service['template_id'][0],
                                                           ['store_fname', 'parent_id'])
            dbro = self.pool.get('document.directory').read(cr, user, template['parent_id'][0], ['storage_id'], context)
            storage = self.pool.get('document.storage').read(cr, user, dbro['storage_id'][0], ['path'])

            filepath = os.path.join(storage['path'], template['store_fname'])
            file_data = open(filepath, 'rb').read()
            template_io = StringIO()
            template_io.write(file_data)
            serializer = OOSerializer(template_io)
            basic = Template(source=template_io, serializer=serializer)

            d = datetime.strptime(contract['contract_date'], '%Y-%m-%d')
            date_str = dt.ru_strftime(u"%d %B %Y", d, inflected=True)
            if not contract['contract_number']:
                raise osv.except_osv('Договор', 'Необходимо ввести номер договора')
            if not contract['amount']:
                raise osv.except_osv('Договор', 'Необходимо ввести сумму договора')

            term = 7
            if contract['term'] == 'mounth':
                term = 30
            elif contract['term'] == 'year':
                term = 365
            else:
                term = 0
            o = {
                'name': u'-',
                'contract_number': contract['contract_number'],
                'contract_date': date_str,
                'doc_type': contract['doc_type_id'][1] if contract['doc_type_id'] else '-',
                'responsible_id': contract['responsible_id'][1] if contract['responsible_id'] else '-',
                #  Название баннерной или тизерной сети
                'web': 'test',

                #  стоимость услуг цифры
                'cost_num': contract['amount'],
                #  стоимость услуг слова
                'cost_word': numeral.in_words(float(contract['amount'])),

                #  срок предоставления услуги в фомате 30 (тридцать)
                'term': term,


                #  наш генеральный директор
                'our_gen_dir': u'-',
                #  название фирмы
                'our_firm_name': u'-',
                #  наш Юридический адрес
                'our_address': u'-',
                #  Фактический адрес,адрес почтовой корреспонденции наш
                'our_fact_address': u'-',
                #  ИНН / КПП наш
                'our_inn': u'-',
                #  ОГРН наш
                'our_ogrn': u'-',
                #  Код ОКПО наш
                'our_okpo': u'-',
                #  банк наш
                'our_bank': u'-',
                #  к/с наш
                'our_ks': u'-',
                #  р/с наш
                'our_rs': u'-',
                #  бик наш
                'our_bik': u'-',
                #  Тел/факс наш
                'our_phone': u'-',
                #  Web сайт почта наш
                'our_site': u'-',

                #  заказчика e-mail
                'partner_mail': u'-',
                #  название фирмы заказчика
                'partner_firm_name': u'-',
                #  Юридический адрес партнера
                'partner_address': u'-',
                #  Фактический адрес,адрес почтовой корреспонденции партнера
                'partner_fact_address': u'-',
                #  ИНН / КПП партнера
                'partner_inn': u'-',
                #  ОГРН партнера
                'partner_ogrn': u'-',
                #  Код ОКПО партнера
                'partner_okpo': u'-',
                #  банк партнера
                'partner_bank': u'-',
                #  к/с партнера
                'partner_ks': u'-',
                #  р/с партнера
                'partner_rs': u'-',
                #  бик партнера
                'partner_bik': u'-',
                'partner_kpp': u'-',
                #  Тел/факс партнера
                'partner_phone': u'-',
                #  Web сайт почта партнера
                'partner_site': u'-',
            }

            if contract['bank_id']:
                bank = self.pool.get('res.partner.bank').read(cr, 1, contract['bank_id'][0], [])
                o.update({
                    'partner_mail': bank['email'] or u'-',
                    'partner_site': bank['site'] or u'-',
                    'partner_firm_name': bank['fullname'] or u'-',
                    'partner_address': self.pool.get('res.partner.bank.address').get_address(cr, contract['bank_id'][0]) or u'-',
                    'partner_fact_address': self.pool.get('res.partner.bank.address').get_address(cr, contract['bank_id'][0], 'fa') or u'-',
                    'partner_inn': bank['inn'] or u'-',
                    'partner_kpp': bank['kpp'] or u'-',
                    'partner_ogrn': bank['ogrn'] or u'-',
                    'partner_okpo': bank['okpo'] or u'-',
                    'partner_bank': bank['bank'] or u'-',
                    'partner_ks': bank['correspondent_account'] or u'-',
                    'partner_rs': bank['current_account'] or u'-',
                    'partner_bik': bank['bik'] or u'-',
                    'partner_phone': bank['phone'] or u'-',
                })

            if contract['account_id']:
                account = self.pool.get('account.account').read(cr, 1, contract['account_id'][0], [])
                o.update({
                    'our_gen_dir': account['responsible'] or u'-',
                    'our_firm_name': account['full'] or u'-',
                    'our_address': account['address'] or u'-',
                    'our_fact_address': account['address'] or u'-',
                    'our_inn': account['inn'] or u'-',
                    'our_kpp': account['kpp'] or u'-',
                    'our_ogrn': u'1127747081406',
                    'our_okpo': u'13183255',
                    'our_bank': account['bank'] or u'-',
                    'our_ks': account['bank_number'] or u'-',
                    'our_rs': account['account_number'] or u'-',
                    'our_bik': account['bik'] or u'-',
                    'our_phone': account['phone'] or u'-',
                    'our_site': u'UpSale.ru, [email protected]',
                })

            filename = '{0} {1} {2}'.format(
                contract['contract_number'].encode('utf-8'),
                contract['partner_id'][1].encode('utf-8'),
                contract['service_id'][1].encode('utf-8'), )

            #data = [(k, v.encode('cp1251')) for k, v in o.iteritems() if isinstance(v, unicode)]

            odt_file = os.path.join(storage['path'], 'tmp.odt')
            file(odt_file, 'wb').write(basic.generate(o=o).render().getvalue())

            doc_id = self.pool.get('ir.attachment').create(cr, user, {
                'name': '{0}.odt'.format(filename, ),
                'datas': base64.b64encode(open(odt_file, 'rb').read()),
                'datas_fname': '{0}.odt'.format(filename, ),
                'res_model': self._name,
                'res_id': contract['id']
            })
            self.write(cr, user, [contract['id']], {'doc_id': doc_id})
        return True
コード例 #48
0
ファイル: report_helper.py プロジェクト: VbossEkat/MyAddons
def ru_date2(self, date):
    if date and date != 'False':
        return dt.ru_strftime(u'%d %B %Y г.', date=datetime.strptime(date, "%Y-%m-%d %H:%M:%S"), inflected=True)
    return ''