Esempio n. 1
0
 def create_new_value(self, value):
     if self.get_queryset().filter(
             name=arToPersianChar(value.strip())).exists():
         obj = self.get_queryset().filter(
             name=arToPersianChar(value.strip()))[0]
     else:
         obj = self.get_queryset().create(
             **self.get_model_field_values(value))
     return getattr(obj, 'pk')
Esempio n. 2
0
    def clean(self):
        cd = super(BaseModelForm, self).clean()
        for field in self.fields:
            if isinstance(self.fields[field], forms.CharField) and field not in self.exclude_from_clean:
                value = cd.get(field)
                if value and isinstance(value, str):
                    cd[field] = arToPersianChar(value)

        return cd
Esempio n. 3
0
 def value_from_datadict(self, data, files, name):
     value = super(TagTitledModelWidget,
                   self).value_from_datadict(data, files, name)
     try:
         new_value = self.queryset.get(**{'pk': value})
     except (ValueError, self.queryset.model.DoesNotExist):
         arg = {"title": arToPersianChar(value)}
         if self.http_request.user.is_authenticated:
             arg['creator'] = self.http_request.user
         new_value = self.queryset.create(**arg)
     return new_value.pk
Esempio n. 4
0
def login_view(request):
    next_page = request.GET.get('next', '')
    try:
        if request.user.is_superuser or (request.user.is_authenticated
                                         and request.user.staff
                                         and request.user.staff.role_id):
            if not next_page:
                next_page = reverse('account:admin_dashboard')
            return HttpResponseRedirect(next_page)
    except ObjectDoesNotExist:
        pass

    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = arToPersianChar(
                form.cleaned_data.get('username')).lower()
            password = form.cleaned_data.get('password')
            user = authenticate(username=username, password=password)

            if user is None:
                password = persianToEnNumb(password)
                username = persianToEnNumb(username)
                user = authenticate(username=username, password=password)
                if user is None:
                    password = enToPersianNumb(password)
                    username = enToPersianNumb(username)
                    user = authenticate(username=username, password=password)

            if user is None or not user.is_active:
                messages.error(request, u"نام کاربری یا گذرواژه نادرست است.")
            else:
                login(request, user)

                if not next_page:
                    next_page = reverse('admin_dashboard')
                return HttpResponseRedirect(next_page)
        else:
            messages.error(request, u"داده های ارسالی نامعتبر است.")

    else:
        form = LoginForm()

    context = {
        'app_path': request.get_full_path(),
        'next': next_page,
        'form': form,
    }

    return render(request, 'account/login.html', context)
Esempio n. 5
0
    def __check_handler(handler, kwargs, form_data):
        field_name = handler[0]
        field_type = handler[1]

        if len(handler) > 2:
            if handler[2] is None:
                return
            django_lookup = handler[2] or field_name
        else:
            django_lookup = field_name

        field_value = persianToEnNumb(
            arToPersianChar(form_data.get(field_name)))
        if field_value and field_value != 'None':
            if field_type == 'str':
                search_field = django_lookup + '__icontains'
                select = Q()
                term = field_value.replace('\t', ' ')
                term = term.replace('\n', ' ')
                for t in [t for t in term.split(' ') if not t == '']:
                    select &= Q(**{search_field: t})
                return select
            elif field_type == 'bool':
                if field_value == 'on':
                    kwargs[django_lookup] = True
            elif field_type == 'null_bool':
                if field_value in (2, "2"):
                    kwargs[django_lookup] = True
                elif field_value in (3, "3"):
                    kwargs[django_lookup] = False
            elif field_type == 'm2o':
                kwargs[django_lookup + '__id'] = field_value
            elif field_type == 'm2m':
                kwargs[django_lookup + '__in'] = field_value
            elif field_type == 'pdate':
                miladi_date = jalali_to_gregorian(field_value)
                if django_lookup.endswith('gte'):
                    kwargs[django_lookup] = datetime.datetime.combine(
                        miladi_date, datetime.time.min)
                elif django_lookup.endswith('lte'):
                    kwargs[django_lookup] = datetime.datetime.combine(
                        miladi_date, datetime.time.max)
                else:
                    kwargs[django_lookup] = miladi_date.isoformat()
            elif field_type == 'pdatetime':
                kwargs[django_lookup] = jalali_time_to_gregorian(
                    field_value, to_tehran_time=True)
            else:
                kwargs[django_lookup] = field_value
Esempio n. 6
0
 def get_model_field_values(self, value):
     creator = None
     if self.http_request:
         creator = self.http_request.user
     return {'name': arToPersianChar(value.strip()), 'creator': creator}
Esempio n. 7
0
 def filter_queryset(self, term, queryset=None, **dependent_fields):
     term = arToPersianChar(persianToEnNumb(arToPersianChar(term)))
     return super(MyModelSelect2Widget,
                  self).filter_queryset(term, queryset, **dependent_fields)