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()
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
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
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
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
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
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
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)