Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ codecov = "*"
django-bootstrap4 = "*"
celery = "*"
redis = "*"
django-pagarme = "*"
inflection = "*"
django-two-factor-auth = "*"
django-recaptcha = "*"
django-pagarme = "*"

[dev-packages]
faker = "*"
Expand Down
24 changes: 12 additions & 12 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
{% endblock %}

{% block body %}
{% include 'payments/_whatsapp_widget.html' %}
{% include 'launch/_whatsapp_widget.html' %}
<header class="header-main">
<div class="header-main__group text-center">
<h1 class="header-main__group__title text-uppercase fw-800 font-highlighted">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
{% endblock %}

{% block body %}
{% include 'payments/_whatsapp_widget.html' %}
{% include 'launch/_whatsapp_widget.html' %}
<header class="header-main">
<div class="header-main__group text-center">
<h1 class="header-main__group__title text-uppercase fw-800 font-highlighted">Saiba como ter acesso a um mercado que paga altos salários e tem milhares de vagas em aberto!</h1>
Expand Down
1 change: 1 addition & 0 deletions pythonpro/core/tests/test_view_home.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ def home_resp_open_subscriptions(settings, client):
return _resp(client)


@pytest.mark.skip # TODO: reimplement based on dates
def test_payment_link_is_present(home_resp_open_subscriptions):
"""
Assert Payment link is present on home page when subscriptions are open
Expand Down
3 changes: 1 addition & 2 deletions pythonpro/domain/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from pythonpro.domain import (checkout_domain, content_statistics_domain, membership_domain, user_facade)
from pythonpro.domain import (checkout_domain, content_statistics_domain, user_facade)

__all__ = [
'content_statistics_domain',
'membership_domain',
'user_facade',
'checkout_domain'
]
80 changes: 0 additions & 80 deletions pythonpro/domain/membership_domain.py

This file was deleted.

62 changes: 0 additions & 62 deletions pythonpro/domain/tests/test_pytools_promotion.py

This file was deleted.

57 changes: 3 additions & 54 deletions pythonpro/domain/user_facade.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,21 @@
from django.conf import settings, settings as _settings
from django.core.mail import send_mail as _send_mail
from django.template.loader import render_to_string
from django.urls import reverse

from pythonpro.absolute_uri import build_absolute_uri
from pythonpro.cohorts import facade as _cohorts_facade
from pythonpro.core import facade as _core_facade
from pythonpro.core.models import User as _User
from pythonpro.discourse.facade import MissingDiscourseAPICredentials, generate_sso_payload_and_signature
from pythonpro.email_marketing import facade as _email_marketing_facade
from pythonpro.payments import facade as _payments_facade

_logger = Logger(__file__)

UserCreationException = _core_facade.UserCreationException # exposing exception on Facade

__all__ = [
'register_lead', 'force_register_client', 'promote_client', 'activate_user', 'find_user_interactions',
'visit_member_landing_page', 'run_pytools_promotion_campaign', 'promote_member', 'find_user_by_email',
'register_lead', 'force_register_client', 'activate_user', 'find_user_interactions',
'visit_member_landing_page', 'promote_member', 'find_user_by_email',
'find_user_by_id', 'force_register_lead', 'subscribe_to_waiting_list', 'force_register_member',
'click_member_checkout', 'subscribe_anonymous_user_to_waiting_list'
]
Expand Down Expand Up @@ -139,7 +137,7 @@ def promote_member(user: _User, source: str) -> _User:
except _ActiveCampaignError:
pass
email_msg = render_to_string(
'payments/membership_email.txt',
'launch/membership_email.txt',
{
'user': user,
'cohort_detail_url': build_absolute_uri(cohort.get_absolute_url())
Expand Down Expand Up @@ -212,40 +210,6 @@ def promote_data_scientist(user: _User, source: str) -> _User:
return user


def promote_client(user: _User, source: str) -> None:
"""
Promote a user to Client role and change it's role on Email Marketing. Will not fail in case API call fails.
Email welcome email is sent to user
:param source: source of traffic
:param user:
:return:
"""
_core_facade.promote_to_client(user, source)
sync_user_on_discourse(user)
try:
_email_marketing_facade.create_or_update_client(user.first_name, user.email, id=user.id)
except _ActiveCampaignError:
pass
email_msg = render_to_string(
'payments/pytools_email.txt',
{
'user': user,
'ty_url': build_absolute_uri(reverse('payments:pytools_thanks'))
}
)
_send_mail(
'Inscrição no curso Pytools realizada! Confira o link com detalhes.',
email_msg,
_settings.DEFAULT_FROM_EMAIL,
[user.email]
)


def promote_client_and_remove_boleto_tag(user: _User, source: str = None):
promote_client(user, source)
_email_marketing_facade.remove_tags(user.email, user.id, CLIENT_BOLETO_TAG)


def find_user_by_email(user_email: str) -> _User:
"""
Find user by her email
Expand Down Expand Up @@ -273,21 +237,6 @@ def find_user_interactions(user: _User):
return _core_facade.find_user_interactions(user)


def run_pytools_promotion_campaign() -> int:
"""
Run pytools campaign for users registered 7 weeks ago
:return: number of user's marked for promotion
"""
begin, end = _payments_facade.calculate_7th_week_before_promotion()
promotion_users = _core_facade.find_leads_by_date_joined_interval(begin, end)
for user in promotion_users:
try:
_email_marketing_facade.tag_as(user.email, user.id, 'pytools-promotion')
except _ActiveCampaignError:
pass
return len(promotion_users)


def visit_member_landing_page(user, source):
"""
Mark user as visited member landing page
Expand Down
Loading