Example #1
0
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
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
 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))
Example #5
0
 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))
Example #6
0
    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
Example #7
0
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