示例#1
0
def login_view(request):
    if request.method == 'POST':
        login_form = SignInForm(request.POST)
        if login_form.is_valid():
            username = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']

            user = authenticate(username=username, password=password)
            if user is None or not user.is_active:
                messages.error(request, u"نام کاربری یا گذرواژه نادرست است.")
            elif PermissionController.is_member(
                    user) and user.member.is_confirmed is False:
                messages.error(
                    request,
                    u"ثبت نام شما از طرف مدیریت رد شده است و نمی توانید در سامانه وارد شوید."
                )
            else:
                login(request, user)
                next_page = request.GET.get('next')
                #if PermissionController.is_admin(user):
                #    ProjectMilestone.check_milestones()
                if next_page:
                    return HttpResponseRedirect(next_page)
                else:
                    return HttpResponseRedirect(
                        PermissionController.get_user_redirect_url(user))
    else:
        login_form = SignInForm()

    return render_to_response('accounts/login_page.html',
                              {'login_form': login_form},
                              context_instance=RequestContext(request))
示例#2
0
    def save(self, commit=True):
        message = super(MemberMessageForm, self).save(commit=False)
        message.sender = self.user
        message.save()

        if not self.user.member.cluster:
            receivers = PermissionController.get_admins()
            message.receivers = receivers
            if receivers:
                for user in receivers:
                    message_text = MessageServices.get_send_message(self.user, message.title, message.body)
                    MessageServices.send_message(subject=u"پیام دریافتی سامانه",
                                                 message=message_text, user=user)
            return message

        send_type = int(self.cleaned_data.get('send_type'))

        if send_type == 7:
            receivers = PermissionController.get_admins()
        elif send_type == 8:
            receivers = User.objects.filter(member__in=self.user.member.cluster.members.filter().distinct())
            #receivers = self.user.member.cluster.members.filter().values_list('user', flat=True)
        else:
            receivers = self.cleaned_data.get('receivers')

        message.receivers = receivers

        if receivers:
            for user in receivers:
                message_text = MessageServices.get_send_message(self.user, message.title, message.body)
                MessageServices.send_message(subject=u"پیام دریافتی سامانه",
                                             message=message_text, user=user)
        return message
示例#3
0
    def action_view(self, http_request, selected_instances):
        if not selected_instances:
            raise Http404()

        instance = selected_instances[0]
        form = ProjectManagerForm(instance=instance)
        for field in form.fields:
            form.fields[field].widget.attrs.update({'readonly': 'readonly', 'disabled': 'disabled'})

        if http_request.method == 'POST' and self.has_comments:
            comment_txt = http_request.POST.get('project-comment-text')
            if comment_txt:
                comment = ProjectComment.objects.create(user=http_request.user, comment=comment_txt, project=instance)
                if not PermissionController.is_arbiter(http_request.user):
                    comment.seen_by_member = True
                    comment.save()

        reports = instance.reports.all()
        project = None
        if self.for_admin:
            project = instance

        if not self.has_comments:
            comments = None
        else:
            if PermissionController.is_member(http_request.user):
                comments = instance.comments.filter(seen_by_member=True).order_by('-id')
            else:
                comments = instance.comments.all().order_by('-id')

        return render_to_response('project/show_project.html',
                                  {'form': form, 'title': u"جزئیات طرح",
                                   'project': project, 'comments': comments,'reports':reports, 'has_comments': self.has_comments},
                                  context_instance=RequestContext(http_request))
示例#4
0
def view_arbiter_comment(request, project_arbiter_id):
    if (not PermissionController.is_admin(request.user) and not PermissionController.is_supervisor(
            request.user)) or not project_arbiter_id:
        raise Http404()
    project_arbiter = get_object_or_404(ProjectArbiter, id=project_arbiter_id)
    return render_to_response('project/view_arbiter_comment.html', {'project_arbiter': project_arbiter},
                              context_instance=RequestContext(request))
示例#5
0
文件: auth.py 项目: hamed1369/Cluster
def login_view(request):
    if request.method == 'POST':
        login_form = SignInForm(request.POST)
        if login_form.is_valid():
            username = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']

            user = authenticate(username=username, password=password)
            if user is None or not user.is_active:
                messages.error(request, u"نام کاربری یا گذرواژه نادرست است.")
            elif PermissionController.is_member(user) and user.member.is_confirmed is False:
                messages.error(request, u"ثبت نام شما از طرف مدیریت رد شده است و نمی توانید در سامانه وارد شوید.")
            else:
                login(request, user)
                next_page = request.GET.get('next')
                #if PermissionController.is_admin(user):
                #    ProjectMilestone.check_milestones()
                if next_page:
                    return HttpResponseRedirect(next_page)
                else:
                    return HttpResponseRedirect(PermissionController.get_user_redirect_url(user))
    else:
        login_form = SignInForm()

    return render_to_response('accounts/login_page.html', {'login_form': login_form},
                              context_instance=RequestContext(request))
示例#6
0
    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user')
        super(AdminMessageForm, self).__init__(*args, **kwargs)
        self.fields['send_type'] = forms.ChoiceField(
            label=u"نوع گیرنده", choices=AdminMessageForm.SEND_TYPE)
        self.fields['send_type'].required = False

        self.fields['arbiter_receivers'] = forms.ModelMultipleChoiceField(
            queryset=PermissionController.get_arbiters_user(),
            label=u"گیرنده ها")
        self.fields['arbiter_receivers'].required = False
        self.fields['arbiter_receivers'].is_hidden = True
        self.fields['member_receivers'] = forms.ModelMultipleChoiceField(
            queryset=PermissionController.get_members_user(),
            label=u"گیرنده ها")
        self.fields['member_receivers'].required = False
        self.fields['member_receivers'].is_hidden = True

        self.fields['is_sms'] = forms.BooleanField(required=False,
                                                   label=u"ارسال پیامک")
        self.fields['is_mail'] = forms.BooleanField(
            required=False, label=u"ارسال پست الکترونیک")
        process_js_validations(self)
        self.fields['send_type'].required = True
        self.fields.keyOrder = [
            'title', 'body', 'send_type', 'arbiter_receivers',
            'member_receivers', 'is_sms', 'is_mail'
        ]
示例#7
0
def edit_account(request):
    if PermissionController.is_member(request.user):
        return handle_member_edit(request)
    elif PermissionController.is_supervisor(request.user):
        return handle_supervisor_edit(request)
    elif PermissionController.is_admin(request.user):
        return handle_admin_edit(request)
    else:
        raise Http404
示例#8
0
def edit_account(request):
    if PermissionController.is_member(request.user):
        return handle_member_edit(request)
    elif PermissionController.is_supervisor(request.user):
        return handle_supervisor_edit(request)
    elif PermissionController.is_admin(request.user):
        return handle_admin_edit(request)
    else:
        raise Http404
示例#9
0
def view_arbiter_comment(request, project_arbiter_id):
    if (not PermissionController.is_admin(request.user)
            and not PermissionController.is_supervisor(
                request.user)) or not project_arbiter_id:
        raise Http404()
    project_arbiter = get_object_or_404(ProjectArbiter, id=project_arbiter_id)
    return render_to_response('project/view_arbiter_comment.html',
                              {'project_arbiter': project_arbiter},
                              context_instance=RequestContext(request))
示例#10
0
def show_user_for_project_comments(user):
    if PermissionController.is_admin(user):
        return u"مدیر"
    elif PermissionController.is_arbiter(user):
        return u"داور"
    elif PermissionController.is_supervisor(user):
        return u"ناظر"
    else:
        return u"%s (متقاضی)" % unicode(user)
示例#11
0
def check_role(user, role_name):
    if isinstance(user, AnonymousUser):
        return False
    if role_name == 'member':
        return PermissionController.is_member(user)
    elif role_name == 'admin':
        return PermissionController.is_admin(user)
    elif role_name == 'arbiter':
        return PermissionController.is_arbiter(user)
    elif role_name == 'supervisor':
        return PermissionController.is_supervisor(user)
    return False
示例#12
0
def change_seen_by_member(request):
    if PermissionController.is_admin(request.user) or PermissionController.is_supervisor(request.user):
        is_seen = request.POST.get('i')
        comment_id = request.POST.get('c')
        if is_seen and comment_id:
            comment = get_object_or_404(ProjectComment, id=comment_id)
            if is_seen == 'true':
                comment.seen_by_member = True
            elif is_seen == 'false':
                comment.seen_by_member = False
            comment.save()
            return HttpResponse('Ok')
    raise Http404
示例#13
0
def change_seen_by_member(request):
    if PermissionController.is_admin(
            request.user) or PermissionController.is_supervisor(request.user):
        is_seen = request.POST.get('i')
        comment_id = request.POST.get('c')
        if is_seen and comment_id:
            comment = get_object_or_404(ProjectComment, id=comment_id)
            if is_seen == 'true':
                comment.seen_by_member = True
            elif is_seen == 'false':
                comment.seen_by_member = False
            comment.save()
            return HttpResponse('Ok')
    raise Http404
示例#14
0
    def save(self, commit=True):
        message = super(AdminMessageForm, self).save(commit=False)
        message.sender = self.user
        message.save()

        send_type = int(self.cleaned_data.get('send_type'))

        if send_type == 1:
            receivers = User.objects.all()
        elif send_type == 2:
            receivers = User.objects.filter(member__isnull=False)
        elif send_type == 3:
            receivers = User.objects.filter(
                member__id__in=Cluster.objects.filter().values_list('head',
                                                                    flat=True))
        elif send_type == 5:
            receivers = User.objects.filter(arbiter__isnull=False)
        elif send_type == 4:
            receivers = self.cleaned_data.get('member_receivers')
        elif send_type == 6:
            receivers = self.cleaned_data.get('arbiter_receivers')
        else:
            receivers = []

        message.receivers = receivers

        is_sms = self.cleaned_data.get('is_sms')
        is_mail = self.cleaned_data.get('is_mail')
        if receivers:
            for user in receivers:
                if is_mail:
                    message_text = MessageServices.get_send_message(
                        self.user, message.title, message.body)
                    MessageServices.send_message(
                        subject=u"پیام دریافتی از مدیریت سیستم",
                        message=message_text,
                        user=user)
                if is_sms:
                    mobile = None
                    if PermissionController.is_supervisor(user):
                        mobile = user.supervisor.mobile
                    elif PermissionController.is_arbiter(user):
                        mobile = user.arbiter.mobile
                    elif PermissionController.is_member(user):
                        mobile = user.member.mobile
                    if mobile:
                        SMSService.send_sms(
                            message.title + '\n' + message.body, [mobile])
        return message
示例#15
0
def register(request):
    if not PermissionController.is_member(request.user):
        raise Http404()

    member = Member.objects.get(user=request.user)

    if not member.is_confirmed:
        messages.error(
            request,
            u"تا زمان عدم تایید عضویت شما از طریق مدیریت سامانه شما قادر به ایجاد طرح نیستید."
        )
        return render_to_response('show_message.html', {},
                                  context_instance=RequestContext(request))

    project_handler = ProjectHandler(request)

    project_handler.initial_forms()
    if project_handler.is_valid_forms():
        project_handler.save_forms()
        messages.success(request, u"ثبت  طرح با موفقیت انجام شد.")
        return render_to_response('show_message.html', {},
                                  context_instance=RequestContext(request))

    context = project_handler.get_context()
    return render_to_response('project/register.html',
                              context,
                              context_instance=RequestContext(request))
示例#16
0
 def __init__(self, *args, **kwargs):
     kwargs['user'] = None
     super(AdminProjectManagerForm, self).__init__(*args, **kwargs)
     if 'agreement' in self.fields:
         del self.fields['agreement']
     self.fields.keyOrder = ['title', 'has_confirmation', 'confirmation_type', 'certificate_image', 'has_patent',
                             'patent_number', 'patent_date', 'patent_certificate', 'patent_request', 'domain',
                             'summary', 'keywords', 'innovations', 'supervisor', 'state', 'proposal',
                             'attended_members', 'project_status', 'score','allow_edit','show_in_intro','intro_file']
     if self.instance and self.instance.id:
         if self.instance.project_status != 1:
             self.fields['score'].is_hidden = True
     self.fields['project_status'].choices = (
         (-2, u"رد شده"),
         (-1, u"رد شده توسط ناظر"),
         (0, u"در مرحله درخواست"),
         (1, u"مورد تایید ناظر"),
         (2, u"تایید مرحله اول"),
         #(2, u"تاییدشده توسط داور"),
         (3, u"تایید مرحله دوم"),
         (4, u"تکمیل شده"),
     )
     if not 'attended_members' in self.fields:
         self.fields.keyOrder.remove('attended_members')
     if PermissionController.is_supervisor(user=self.http_request.user):
         if 'supervisor' in self.fields:
             del self.fields['supervisor']
         if 'supervisor' in self.fields.keyOrder:
             self.fields.keyOrder.remove('supervisor')
     process_js_validations(self)
示例#17
0
 def __init__(self, *args, **kwargs):
     kwargs['user'] = None
     super(AdminProjectManagerForm, self).__init__(*args, **kwargs)
     if 'agreement' in self.fields:
         del self.fields['agreement']
     self.fields.keyOrder = [
         'title', 'has_confirmation', 'confirmation_type',
         'certificate_image', 'has_patent', 'patent_number', 'patent_date',
         'patent_certificate', 'patent_request', 'domain', 'summary',
         'keywords', 'innovations', 'supervisor', 'state', 'proposal',
         'attended_members', 'project_status', 'score', 'allow_edit',
         'show_in_intro', 'intro_file'
     ]
     if self.instance and self.instance.id:
         if self.instance.project_status != 1:
             self.fields['score'].is_hidden = True
     self.fields['project_status'].choices = (
         (-2, u"رد شده"),
         (-1, u"رد شده توسط ناظر"),
         (0, u"در مرحله درخواست"),
         (1, u"مورد تایید ناظر"),
         (2, u"تایید مرحله اول"),
         #(2, u"تاییدشده توسط داور"),
         (3, u"تایید مرحله دوم"),
         (4, u"تکمیل شده"),
     )
     if not 'attended_members' in self.fields:
         self.fields.keyOrder.remove('attended_members')
     if PermissionController.is_supervisor(user=self.http_request.user):
         if 'supervisor' in self.fields:
             del self.fields['supervisor']
         if 'supervisor' in self.fields.keyOrder:
             self.fields.keyOrder.remove('supervisor')
     process_js_validations(self)
示例#18
0
def welcome_st(user):
    if PermissionController.is_arbiter(user):
        overall_name = unicode(user.arbiter)
    else:
        overall_name = u"%s %s" % (user.first_name, user.last_name) if (
            user.first_name and user.last_name) else u"%s" % user.username
    return u"%s خوش آمدید." % overall_name
示例#19
0
    def action_view(self, http_request, selected_instances):
        if not selected_instances:
            raise Http404()

        instance = selected_instances[0]
        form = ProjectManagerForm(instance=instance)
        for field in form.fields:
            form.fields[field].widget.attrs.update({
                'readonly': 'readonly',
                'disabled': 'disabled'
            })

        if http_request.method == 'POST' and self.has_comments:
            comment_txt = http_request.POST.get('project-comment-text')
            if comment_txt:
                comment = ProjectComment.objects.create(user=http_request.user,
                                                        comment=comment_txt,
                                                        project=instance)
                if not PermissionController.is_arbiter(http_request.user):
                    comment.seen_by_member = True
                    comment.save()

        reports = instance.reports.all()
        project = None
        if self.for_admin:
            project = instance

        if not self.has_comments:
            comments = None
        else:
            if PermissionController.is_member(http_request.user):
                comments = instance.comments.filter(
                    seen_by_member=True).order_by('-id')
            else:
                comments = instance.comments.all().order_by('-id')

        return render_to_response(
            'project/show_project.html', {
                'form': form,
                'title': u"جزئیات طرح",
                'project': project,
                'comments': comments,
                'reports': reports,
                'has_comments': self.has_comments
            },
            context_instance=RequestContext(http_request))
示例#20
0
def send_feedback(request):
    if not PermissionController.is_member(request.user) and not PermissionController.is_arbiter(request.user):
        raise Http404()

    if request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            feedback = form.save(commit=False)
            feedback.creator = request.user
            feedback.save()
            messages.success(request, u"نظر یا پیشنهاد شما با موفقیت ارسال شد.")
            return render_to_response('show_message.html', {}, context_instance=RequestContext(request))
    else:
        form = FeedbackForm()
    return render_to_response('feedback/feedback.html',
                              {'form': form},
                              context_instance=RequestContext(request))
示例#21
0
 def __init__(self, http_request):
     super(MessageManager, self).__init__(http_request=http_request)
     if PermissionController.is_admin(http_request.user):
         self.actions = [
             SendMessage(),
             DeleteAction(),
             ShowMessage(),
             SendEmail(),
         ]
示例#22
0
 def __init__(self, http_request):
     super(MessageManager, self).__init__(http_request=http_request)
     if PermissionController.is_admin(http_request.user):
         self.actions = [
             SendMessage(),
             DeleteAction(),
             ShowMessage(),
             SendEmail(),
         ]
示例#23
0
    def action_view(self, http_request, selected_instances):
        if PermissionController.is_admin(http_request.user):
            model_form = AdminMessageForm
        elif PermissionController.is_arbiter(http_request.user):
            model_form = ArbiterMessageForm
        else:
            model_form = MemberMessageForm

        if http_request.method == 'POST':
            form = model_form(http_request.POST, http_request.FILES, user=http_request.user)
            if form.is_valid():
                form.save()
                form = None
                messages.success(http_request, u"پیام ارسال شد.")
        else:
            form = model_form(user=http_request.user)

        return render_to_response('manager/actions/add_edit.html', {'form': form, 'title': u"ارسال پیام"},
                                  context_instance=RequestContext(http_request))
示例#24
0
    def save(self, commit=True):
        message = super(AdminMessageForm, self).save(commit=False)
        message.sender = self.user
        message.save()

        send_type = int(self.cleaned_data.get('send_type'))

        if send_type == 1:
            receivers = User.objects.all()
        elif send_type == 2:
            receivers = User.objects.filter(member__isnull=False)
        elif send_type == 3:
            receivers = User.objects.filter(member__id__in=Cluster.objects.filter().values_list('head', flat=True))
        elif send_type == 5:
            receivers = User.objects.filter(arbiter__isnull=False)
        elif send_type == 4:
            receivers = self.cleaned_data.get('member_receivers')
        elif send_type == 6:
            receivers = self.cleaned_data.get('arbiter_receivers')
        else:
            receivers = []

        message.receivers = receivers

        is_sms = self.cleaned_data.get('is_sms')
        is_mail = self.cleaned_data.get('is_mail')
        if receivers:
            for user in receivers:
                if is_mail:
                    message_text = MessageServices.get_send_message(self.user, message.title, message.body)
                    MessageServices.send_message(subject=u"پیام دریافتی از مدیریت سیستم",
                                                 message=message_text, user=user)
                if is_sms:
                    mobile = None
                    if PermissionController.is_supervisor(user):
                        mobile = user.supervisor.mobile
                    elif PermissionController.is_arbiter(user):
                        mobile = user.arbiter.mobile
                    elif PermissionController.is_member(user):
                        mobile = user.member.mobile
                    if mobile:
                        SMSService.send_sms(message.title + '\n' + message.body, [mobile])
        return message
示例#25
0
def send_feedback(request):
    if not PermissionController.is_member(
            request.user) and not PermissionController.is_arbiter(
                request.user):
        raise Http404()

    if request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            feedback = form.save(commit=False)
            feedback.creator = request.user
            feedback.save()
            messages.success(request,
                             u"نظر یا پیشنهاد شما با موفقیت ارسال شد.")
            return render_to_response('show_message.html', {},
                                      context_instance=RequestContext(request))
    else:
        form = FeedbackForm()
    return render_to_response('feedback/feedback.html', {'form': form},
                              context_instance=RequestContext(request))
示例#26
0
def select2(request):
    term = request.GET.get('q')
    result = {}
    if term:
        allow_users = PermissionController.get_available_receivers(request.user)
        if term:
            query = Q(username__icontains=term) | Q(first_name__icontains=term) | Q(last_name__icontains=term)
            allow_users = allow_users.filter(query)
            for user in allow_users:
                result[user.username] = {'id': user.id, 'name': unicode(user)}
    json = simplejson.dumps(result)
    return HttpResponse(json, mimetype='application/json')
示例#27
0
    def save(self, commit=True):
        message = super(MemberMessageForm, self).save(commit=False)
        message.sender = self.user
        message.save()

        if not self.user.member.cluster:
            receivers = PermissionController.get_admins()
            message.receivers = receivers
            if receivers:
                for user in receivers:
                    message_text = MessageServices.get_send_message(
                        self.user, message.title, message.body)
                    MessageServices.send_message(
                        subject=u"پیام دریافتی سامانه",
                        message=message_text,
                        user=user)
            return message

        send_type = int(self.cleaned_data.get('send_type'))

        if send_type == 7:
            receivers = PermissionController.get_admins()
        elif send_type == 8:
            receivers = User.objects.filter(
                member__in=self.user.member.cluster.members.filter().distinct(
                ))
            #receivers = self.user.member.cluster.members.filter().values_list('user', flat=True)
        else:
            receivers = self.cleaned_data.get('receivers')

        message.receivers = receivers

        if receivers:
            for user in receivers:
                message_text = MessageServices.get_send_message(
                    self.user, message.title, message.body)
                MessageServices.send_message(subject=u"پیام دریافتی سامانه",
                                             message=message_text,
                                             user=user)
        return message
示例#28
0
    def save(self, commit=True):
        message = super(ArbiterMessageForm, self).save(commit=False)
        message.sender = self.user
        message.save()

        receivers = PermissionController.get_admins()
        message.receivers = receivers
        if receivers:
            for user in receivers:
                message_text = MessageServices.get_send_message(self.user, message.title, message.body)
                MessageServices.send_message(subject=u"پیام دریافتی سامانه",
                                             message=message_text, user=user)
        return message
示例#29
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)
示例#30
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)
示例#31
0
def select2(request):
    term = request.GET.get('q')
    result = {}
    if term:
        allow_users = PermissionController.get_available_receivers(
            request.user)
        if term:
            query = Q(username__icontains=term) | Q(
                first_name__icontains=term) | Q(last_name__icontains=term)
            allow_users = allow_users.filter(query)
            for user in allow_users:
                result[user.username] = {'id': user.id, 'name': unicode(user)}
    json = simplejson.dumps(result)
    return HttpResponse(json, mimetype='application/json')
示例#32
0
    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user')
        super(AdminMessageForm, self).__init__(*args, **kwargs)
        self.fields['send_type'] = forms.ChoiceField(label=u"نوع گیرنده", choices=AdminMessageForm.SEND_TYPE)
        self.fields['send_type'].required = False

        self.fields['arbiter_receivers'] = forms.ModelMultipleChoiceField(
            queryset=PermissionController.get_arbiters_user(),
            label=u"گیرنده ها")
        self.fields['arbiter_receivers'].required = False
        self.fields['arbiter_receivers'].is_hidden = True
        self.fields['member_receivers'] = forms.ModelMultipleChoiceField(
            queryset=PermissionController.get_members_user(),
            label=u"گیرنده ها")
        self.fields['member_receivers'].required = False
        self.fields['member_receivers'].is_hidden = True

        self.fields['is_sms'] = forms.BooleanField(required=False, label=u"ارسال پیامک")
        self.fields['is_mail'] = forms.BooleanField(required=False, label=u"ارسال پست الکترونیک")
        process_js_validations(self)
        self.fields['send_type'].required = True
        self.fields.keyOrder = ['title', 'body', 'send_type', 'arbiter_receivers', 'member_receivers', 'is_sms',
                                'is_mail']
示例#33
0
def edit_intro_page(request):
    if not PermissionController.is_admin(request.user):
        return HttpResponseRedirect("/login/")
    instance = IntroPageContent.get_instance()
    if request.method == "POST":
        form = IntroPageForm(request.POST, instance=instance)
        if form.is_valid():
            form.save()
            messages.success(request, u"ویرایش اطلاعات با موفقیت انجام شد.")
        else:
            messages.error(request, u"فرم نا معتبر است.")
    else:
        form = IntroPageForm(instance=instance)

    return render_to_response("accounts/edit_intro_page.html", {"form": form}, context_instance=RequestContext(request))
示例#34
0
    def save(self, commit=True):
        message = super(ArbiterMessageForm, self).save(commit=False)
        message.sender = self.user
        message.save()

        receivers = PermissionController.get_admins()
        message.receivers = receivers
        if receivers:
            for user in receivers:
                message_text = MessageServices.get_send_message(
                    self.user, message.title, message.body)
                MessageServices.send_message(subject=u"پیام دریافتی سامانه",
                                             message=message_text,
                                             user=user)
        return message
示例#35
0
def edit_intro_page(request):
    if not PermissionController.is_admin(request.user):
        return HttpResponseRedirect('/login/')
    instance = IntroPageContent.get_instance()
    if request.method == 'POST':
        form = IntroPageForm(request.POST, instance=instance)
        if form.is_valid():
            form.save()
            messages.success(request, u"ویرایش اطلاعات با موفقیت انجام شد.")
        else:
            messages.error(request, u"فرم نا معتبر است.")
    else:
        form = IntroPageForm(instance=instance)

    return render_to_response('accounts/edit_intro_page.html', {"form": form},
                              context_instance=RequestContext(request))
示例#36
0
 def __init__(self, *args, **kwargs):
     self.user = kwargs.pop('user')
     super(MemberMessageForm, self).__init__(*args, **kwargs)
     self.fields['send_type'] = forms.ChoiceField(label=u"نوع گیرنده", choices=MemberMessageForm.SEND_TYPE)
     self.fields['send_type'].required = False
     self.fields['receivers'].queryset = PermissionController.get_available_receivers(self.user)
     self.fields['receivers'].required = False
     self.fields['receivers'].is_hidden = True
     process_js_validations(self)
     self.fields['send_type'].required = True
     self.fields.keyOrder = ['title', 'body', 'send_type', 'receivers']
     if not self.user.member.cluster:
         self.fields['send_type'] = forms.BooleanField(label=u"ارسال پیام به مدیر سیستم",
                                                       widget=forms.CheckboxInput(
                                                           {'readonly': 'readonly', 'disabled': 'disabled'}),
                                                       initial=True, required=False)
         process_js_validations(self)
示例#37
0
    def action_view(self, http_request, selected_instances):
        if not PermissionController.is_admin(http_request.user):
            raise Http404
        if http_request.method == 'POST':
            form = EmailSendForm(http_request.POST)
            if form.is_valid():
                email = form.cleaned_data.get('email')
                receivers = form.cleaned_data.get('receivers')
                subject = form.cleaned_data.get('subject')
                body = form.cleaned_data.get('body')
                MessageServices.send_mass_message(subject, body, receivers,email)
                form = None
                messages.success(http_request, u"پست الکترونیک ارسال شد.")
        else:
            form = EmailSendForm()

        return render_to_response('manager/actions/add_edit.html', {'form': form, 'title': u"ارسال پیام"},
                                  context_instance=RequestContext(http_request))
示例#38
0
def register(request):
    if not PermissionController.is_member(request.user):
        raise Http404()

    member = Member.objects.get(user=request.user)

    if not member.is_confirmed:
        messages.error(request, u"تا زمان عدم تایید عضویت شما از طریق مدیریت سامانه شما قادر به ایجاد طرح نیستید.")
        return render_to_response('show_message.html', {}, context_instance=RequestContext(request))

    project_handler = ProjectHandler(request)

    project_handler.initial_forms()
    if project_handler.is_valid_forms():
        project_handler.save_forms()
        messages.success(request, u"ثبت  طرح با موفقیت انجام شد.")
        return render_to_response('show_message.html', {}, context_instance=RequestContext(request))

    context = project_handler.get_context()
    return render_to_response('project/register.html',
                              context,
                              context_instance=RequestContext(request))
示例#39
0
 def __init__(self, *args, **kwargs):
     self.user = kwargs.pop('user')
     super(MemberMessageForm, self).__init__(*args, **kwargs)
     self.fields['send_type'] = forms.ChoiceField(
         label=u"نوع گیرنده", choices=MemberMessageForm.SEND_TYPE)
     self.fields['send_type'].required = False
     self.fields[
         'receivers'].queryset = PermissionController.get_available_receivers(
             self.user)
     self.fields['receivers'].required = False
     self.fields['receivers'].is_hidden = True
     process_js_validations(self)
     self.fields['send_type'].required = True
     self.fields.keyOrder = ['title', 'body', 'send_type', 'receivers']
     if not self.user.member.cluster:
         self.fields['send_type'] = forms.BooleanField(
             label=u"ارسال پیام به مدیر سیستم",
             widget=forms.CheckboxInput({
                 'readonly': 'readonly',
                 'disabled': 'disabled'
             }),
             initial=True,
             required=False)
         process_js_validations(self)
示例#40
0
def get_media(request, path):
    def return_file(path, name):
        res = serve(request,
                    path,
                    document_root=settings.MEDIA_ROOT,
                    show_indexes=False)
        res['Content-Disposition'] = 'attachment; filename=%s' % name
        return res

    if not path:
        raise Http404()
    id = None
    try:
        path2 = path.split('!target_id=')[0]
        id = path.split('!target_id=')[1]
        path = path2
    except:
        pass
    try:
        slug = path.split('/')[0]
        name = path.split('/')[1]
    except:
        return return_file('', path)
    print slug
    print name
    klass = mapping.get(slug, None)
    if not klass:
        raise Http404()
    if klass == 1:
        return return_file(path, name)
    if not request.user.is_authenticated():
        raise Http404()
    if not id:
        raise Http404()
    try:
        object = klass.objects.get(pk=id)
    except:
        raise Http404()
    if PermissionController().is_admin(
            request.user) or PermissionController().is_supervisor(
                request.user):
        return return_file(path, name)
    if PermissionController().is_arbiter(
            request.user) and not isinstance(klass, Member):
        return return_file(path, name)
    if PermissionController().is_member(request.user):
        try:
            member = request.user.member
        except:
            raise Http404()
        if not member:
            raise Http404()
        if member == object:
            return return_file(path, name)
        if isinstance(object, Project):
            if check_project_access(object, member):
                return return_file(path, name)
        if isinstance(object, ProjectReport):
            if check_project_access(object.project, member):
                return return_file(path, name)
    raise Http404()
示例#41
0
 def can_view(self):
     if PermissionController.is_admin(self.http_request.user):
         return True
     return False
示例#42
0
def default_context(request):
    today = datetime.date.today()
    user_menus = PermissionController.get_user_menus(request.user)
    return {'today': today, 'menus': user_menus}
示例#43
0
def get_top_menus(user):
    return PermissionController.is_member(user)
示例#44
0
def is_arbiter(user):
    return PermissionController.is_arbiter(user)
示例#45
0
 def can_view(self):
     if PermissionController.is_member(self.http_request.user):
         return True
示例#46
0
 def __init__(self, *args, **kwargs):
     super(ClusterForm, self).__init__(*args, **kwargs)
     if not self.http_request.user.is_anonymous(
     ) and not PermissionController.is_member(self.http_request.user):
         self.extra_js_validation = {}
     process_js_validations(self)
示例#47
0
 def __init__(self, *args, **kwargs):
     super(ClusterForm, self).__init__(*args, **kwargs)
     if not self.http_request.user.is_anonymous() and not PermissionController.is_member(self.http_request.user):
         self.extra_js_validation = {}
     process_js_validations(self)
示例#48
0
 def can_view(self):
     if PermissionController.is_admin(self.http_request.user):
         return True
     return False
示例#49
0
def is_admin(user):
    return PermissionController.is_admin(user)