Example #1
0
    def get(self, request, uidb64, token):
        try:
            try:
                uid = urlsafe_base64_decode(uidb64).decode()
                user = User.objects.get(pk=uid)
            except (TypeError, ValueError, OverflowError, User.DoesNotExist):
                user = None

            if user is not None and utilities.account_activation_token.check_token(
                    user, token):
                user.profile.email_confirmed = True
                user.profile.save()
                utilities.telegram_notify('New user: {}'.format(user.username))
                return render(
                    request, 'mail_confirmed.html', {
                        'domain': get_current_site(request).domain,
                        'name': user.username
                    })
            else:
                return render(request, 'mail_confirm_invalid.html',
                              {'domain': get_current_site(request).domain})

        except exceptions.ValidationError as e:
            return responses.ErrorResponse(message=e.detail,
                                           status=e.status_code).send()
        except Exception as e:
            return responses.ErrorResponse(message=str(e)).send()
Example #2
0
 def update(self, instance, validated_data):
     instance.body = validated_data.get('body', instance.body)
     instance.save()
     utilities.telegram_notify(
         'Update Answer: on {}, \n {}'.format(
             instance.question.company.name, '#update_answer'), instance.id,
         'answer', None, instance.body)
     return instance
Example #3
0
 def create(self, validated_data):
     donate = Donate(**validated_data)
     donate.save()
     utilities.telegram_notify(
         'New Donate: BY {}, \n {} on {}, \n link: {} {}'.format(
             donate.name, donate.amount, donate.get_coin_display(),
             donate.link, '#donate'))
     return donate
Example #4
0
 def update(self, instance, validated_data):
     instance.title = validated_data.get('title', instance.title)
     instance.body = validated_data.get('body', instance.body)
     instance.save()
     utilities.telegram_notify(
         'Update Question: on {}, \n {}'.format(instance.company.name,
                                                '#update_question'),
         instance.id, 'question', instance.title, instance.body)
     return instance
Example #5
0
 def create(self, validated_data):
     validated_data['creator'] = self.context['request'].user
     validated_data['question'] = Question.objects.get(
         question_slug=validated_data['question']['question_slug'])
     answer = Answer(**validated_data)
     answer.save()
     utilities.telegram_notify(
         'New Answer: on {}, \n {}'.format(answer.company.name, '#answer'),
         answer.id, 'answer', None, answer.body)
     return answer
Example #6
0
 def create(self, validated_data):
     validated_data['creator'] = self.context['request'].user
     validated_data['company'] = Company.objects.get(
         company_slug=validated_data['company']['company_slug'])
     validated_data['question_slug'] = utilities.check_slug_available(
         Question, 'question_slug',
         utilities.slug_helper(validated_data['title']) +
         '-{}'.format(validated_data['company'].company_slug))
     question = Question(**validated_data)
     question.save()
     utilities.telegram_notify(
         'New Question: on {}, \n {}'.format(question.company.name,
                                             '#question'), question.id,
         'question', question.title, question.body)
     return question
Example #7
0
def open_auth_user_creator(email, first_name, last_name, profile_image):
    user = User(username=email, email=email, first_name=first_name.title(), last_name=last_name.title())
    user.save()
    nick_name = hashlib.new('md5')
    nick_name.update(email.encode())
    nick_name.update(str(time.time()).encode())
    user.profile.nick_name = nick_name.hexdigest()
    user.profile.profile_image = utilities.file_uploader(user.profile.nick_name, profile_image)
    user.profile.email = email
    user.profile.email_confirmed = True
    user.save()
    profile_image_url = '{}{}'.format(settings.MEDIA_BASE_PATH, user.profile.profile_image)
    utilities.telegram_notify('New user: {} {}, \n profile image: {}'.format(user.first_name, user.last_name,
                                                                             profile_image_url))
    return user
Example #8
0
def send_notif():
    # review
    for review in CompanyReview.objects.filter(approved=False):
        utilities.telegram_notify(
            'Previous review: on {}, \n {}'.format(review.company.name,
                                                   '#pre_review'), review.id,
            'review', review.title, review.description)

    # interview
    for interview in Interview.objects.filter(approved=False):
        utilities.telegram_notify(
            'Previous interview: on {}, \n {}'.format(interview.company.name,
                                                      '#pre_interview'),
            interview.id, 'interview', interview.title, interview.description)

    # comment review
    for comment in ReviewComment.objects.filter(approved=False):
        utilities.telegram_notify(
            'Previous Review Comment: {}'.format('#pre_review_comment'),
            comment.id, 'review_comment', None, comment.body)
    # comment interview
    for comment in InterviewComment.objects.filter(approved=False):
        utilities.telegram_notify(
            'Previous Interview Comment: {}'.format('#pre_interview_comment'),
            comment.id, 'interview_comment', None, comment.body)
    # question
    for question in Question.objects.filter(approved=False):
        utilities.telegram_notify(
            'Previous Question: on {}, \n {}'.format(question.company.name,
                                                     '#pre_question'),
            question.id, 'question', question.title, question.body)
    # answer
    for answer in Answer.objects.filter(approved=False):
        utilities.telegram_notify(
            'New Answer: on {}, \n {}'.format(answer.question.company.name,
                                              '#answer'), answer.id, 'answer',
            None, answer.body)