def handel_date_fields(form): for field in form.fields: if isinstance(form.fields[field], (forms.DateField, forms.DateTimeField)): old_field = form.fields[field] new_field = ShamsiDateField(label=old_field.label, required=old_field.required, initial=gregorian_to_jalali(old_field.initial)) form.fields[field] = new_field
def check_milestones(cls): import datetime from cluster.message.models import Message two_days_later = datetime.date.today() + datetime.timedelta(days=2) milestones = ProjectMilestone.objects.filter(milestone_date__lte=two_days_later, is_announced=False) body = u""" موعد های طرح های زیر گذشته اند یا نزدیک هستند: """ i = 1 if not milestones: return admin_users = PermissionController.get_admins() for milestone in milestones: receiver = ( milestone.project.single_member.user if milestone.project.single_member else milestone.project.cluster.head.user ) receiver_mobile = ( milestone.project.single_member.mobile if milestone.project.single_member else milestone.project.cluster.head.mobile ) section = u""" موعد %s مربوط به طرح %s برای زمان %s """ % ( milestone.comment, milestone.project.title, gregorian_to_jalali(milestone.milestone_date), ) Message.send_message(admin_users[0], title=u"موعدهای گذشته یا نزدیک", body=body, receivers=[receiver]) message = MessageServices.get_title_body_message(title=u"موعد طرح زیر گذشته یا نزدیک است:", body=section) MessageServices.send_message(subject=u"موعد طرح", message=message, user=receiver) SMSService.send_sms( message=u"موعد طرح زیر گذشته یا نزدیک است:" + "\n" + section, to_numbers=[receiver_mobile] ) body += "\n" + unicode(i) + u"- " + section.strip() i += 1 milestone.is_announced = True milestone.save() if milestone.project.supervisor: MessageServices.send_message( subject=u"موعد طرح", message=message, user=milestone.project.supervisor.user ) # message = MessageServices.get_title_body_message(title=u"موعد های طرح های زیر گذشته اند یا نزدیک هستند:", # body=body) Message.send_message(admin_users[0], title=u"موعدهای گذشته یا نزدیک", body=body, receivers=admin_users)
def check_milestones(cls): import datetime from cluster.message.models import Message two_days_later = datetime.date.today() + datetime.timedelta(days=2) milestones = ProjectMilestone.objects.filter( milestone_date__lte=two_days_later, is_announced=False) body = u""" موعد های طرح های زیر گذشته اند یا نزدیک هستند: """ i = 1 if not milestones: return admin_users = PermissionController.get_admins() for milestone in milestones: receiver = milestone.project.single_member.user if milestone.project.single_member else milestone.project.cluster.head.user receiver_mobile = milestone.project.single_member.mobile if milestone.project.single_member else milestone.project.cluster.head.mobile section = u""" موعد %s مربوط به طرح %s برای زمان %s """ % (milestone.comment, milestone.project.title, gregorian_to_jalali(milestone.milestone_date)) Message.send_message(admin_users[0], title=u"موعدهای گذشته یا نزدیک", body=body, receivers=[receiver]) message = MessageServices.get_title_body_message( title=u"موعد طرح زیر گذشته یا نزدیک است:", body=section) MessageServices.send_message(subject=u"موعد طرح", message=message, user=receiver) SMSService.send_sms(message=u"موعد طرح زیر گذشته یا نزدیک است:" + '\n' + section, to_numbers=[receiver_mobile]) body += '\n' + unicode(i) + u'- ' + section.strip() i += 1 milestone.is_announced = True milestone.save() if milestone.project.supervisor: MessageServices.send_message( subject=u"موعد طرح", message=message, user=milestone.project.supervisor.user) #message = MessageServices.get_title_body_message(title=u"موعد های طرح های زیر گذشته اند یا نزدیک هستند:", # body=body) Message.send_message(admin_users[0], title=u"موعدهای گذشته یا نزدیک", body=body, receivers=admin_users)
def render(self, name, value, attrs=None): value = gregorian_to_jalali(value) html = super(ShamsiWidget, self).render(name, value, attrs) js = """ <script type='text/javascript'> $('#id_%s').addClass('datepicker'); $('#id_%s').datepicker({ changeMonth: true, changeYear: true, yearRange:'-50:+50', dateFormat: 'yy/mm/dd' }); </script> """ % (name,name) return mark_safe(u"%s %s" % (html, js))
def render(self, name, value, attrs=None): value = gregorian_to_jalali(value) html = super(ShamsiWidget, self).render(name, value, attrs) js = """ <script type='text/javascript'> $('#id_%s').addClass('datepicker'); $('#id_%s').datepicker({ changeMonth: true, changeYear: true, yearRange:'-50:+50', dateFormat: 'yy/mm/dd' }); </script> """ % ( name, name, ) return mark_safe(u"%s %s" % (html, js))
def _create_data_table(self, page_data, columns=None): id_columns = ManagerColumn('id', 'id', '0') if not columns: columns = [id_columns] + self.get_columns() table = Table() header = Header() for column in columns: header.create_cell(column.column_name, column.column_verbose_name, column.column_width, column.aggregation) table.set_header(header) for data in page_data: row = Row() for column in columns: column_name = column.column_name if isinstance(data, models.Model) and isinstance( data, Visitor) and column_name == 'id': column_name = 'session_key' if column.is_variable: function = getattr(self, 'get_' + column_name) value = function(data) else: value = getattr(data, column_name) if isinstance(value, bool): if value is True: value = u"بله" else: value = u"خیر" elif isinstance(value, date): value = gregorian_to_jalali(value) elif isinstance(data, models.Model) and not column.is_variable: if data.__class__._meta.get_field_by_name( column_name)[0].choices: value = getattr(data, 'get_' + column_name + '_display')() if not isinstance(value, (SafeUnicode, SafeString)): value = unicode(value) if value is None or value == 'None': value = u"---" row.create_cell(column_name, value, column.column_width, column.aggregation) table.add_row(row) return table
def pdate_if_date(value): if isinstance(value, datetime.date): return gregorian_to_jalali(value) if value is None or value == 'None' or value == '': return '---' return value