diff --git a/app/app/context.py b/app/app/context.py index a943ce458a3..33ce8177acd 100644 --- a/app/app/context.py +++ b/app/app/context.py @@ -18,6 +18,7 @@ """ import json +import logging from django.conf import settings from django.utils import timezone @@ -31,6 +32,8 @@ RECORD_VISIT_EVERY_N_SECONDS = 60 * 60 +logger = logging.getLogger(__name__) + def preprocess(request): """Handle inserting pertinent data into the current context.""" @@ -61,7 +64,10 @@ def preprocess(request): if record_visit: ip_address = get_ip(request) profile.last_visit = timezone.now() - profile.save() + try: + profile.save() + except Exception as e: + logger.exception(e) metadata = {'useragent': request.META['HTTP_USER_AGENT'], } UserAction.objects.create( user=request.user, diff --git a/app/app/settings.py b/app/app/settings.py index 97e9c904803..151f5ecc93c 100644 --- a/app/app/settings.py +++ b/app/app/settings.py @@ -43,6 +43,7 @@ IS_DEBUG_ENV = ENV in DEBUG_ENVS HOSTNAME = env('HOSTNAME', default=socket.gethostname()) BASE_URL = env('BASE_URL', default='http://localhost:8000/') +OVERRIDE_NETWORK = env('OVERRIDE_NETWORK', default=None) SECRET_KEY = env('SECRET_KEY', default='YOUR-SupEr-SecRet-KeY') ADMINS = (env.tuple('ADMINS', default=('TODO', 'todo@todo.net'))) BASE_DIR = root() diff --git a/app/app/urls.py b/app/app/urls.py index 6b6e136a8dd..2afd0345b32 100644 --- a/app/app/urls.py +++ b/app/app/urls.py @@ -95,7 +95,12 @@ # api views url(r'^api/v0.1/profile/(.*)?/keywords', dashboard.views.profile_keywords, name='profile_keywords'), + url(r'^api/v0.1/profile/(.*)?/activity.json', dashboard.views.profile_activity, name='profile_activity'), + url(r'^api/v0.1/profile/(.*)?/earnings.csv', dashboard.views.profile_earnings, name='profile_earnings'), + url(r'^api/v0.1/profile/(.*)?/viewers.csv', dashboard.views.profile_viewers, name='profile_viewers'), + url(r'^api/v0.1/profile/(.*)?/spent.csv', dashboard.views.profile_spent, name='profile_spent'), url(r'^api/v0.1/profile/banner', dashboard.views.change_user_profile_banner, name='change_user_profile_banner'), + url(r'^api/v0.1/activity', retail.views.create_status_update, name='create_status_update'), url( r'^api/v0.1/profile/(.*)?/jobopportunity', dashboard.views.profile_job_opportunity, @@ -136,6 +141,7 @@ # dashboard views re_path(r'^onboard/(?P\w+)/$', dashboard.views.onboard, name='onboard'), re_path(r'^onboard/contributor/avatar/?$', dashboard.views.onboard_avatar, name='onboard_avatar'), + re_path(r'^onboard/?$', dashboard.views.onboard, name='onboard'), url(r'^postcomment/', dashboard.views.post_comment, name='post_comment'), url(r'^explorer/?', dashboard.views.dashboard, name='explorer'), @@ -270,6 +276,7 @@ re_path(r'^users/?', dashboard.views.users_directory, name='users_directory'), # Alpha functionality + re_path(r'^profile/(.*)/(.*)?', dashboard.views.profile, name='profile_by_tab'), re_path(r'^profile/(.*)?', dashboard.views.profile, name='profile'), re_path(r'^toolbox/?', dashboard.views.toolbox, name='toolbox'), path('actions/tool//voteUp', dashboard.views.vote_tool_up, name='vote_tool_up'), diff --git a/app/assets/v2/css/base.css b/app/assets/v2/css/base.css index 4d1fb4a9c5b..6cccf55f70a 100644 --- a/app/assets/v2/css/base.css +++ b/app/assets/v2/css/base.css @@ -1633,3 +1633,17 @@ div.busyOverlay { .daterangepicker .ranges li.active { background-color: #5b24ff !important; } + +.admin_only { + background-color: #f2f5ea !important; + border-radius: 3px; +} + +.only_visible_to_me_color { + background-color: #d3e3f7; +} + +.only_visible_to_me { + padding: 3px 5px; + border-radius: 3px; +} \ No newline at end of file diff --git a/app/assets/v2/css/gitcoin.css b/app/assets/v2/css/gitcoin.css index 4f3c540beee..bd3587f49a8 100644 --- a/app/assets/v2/css/gitcoin.css +++ b/app/assets/v2/css/gitcoin.css @@ -400,6 +400,16 @@ div.button-pink { margin-right: 0.5rem; } +#tabs .nav-link span { + position: relative; + font-size: 0.3rem; + font-weight: bold; + background-color: #ddd; + border-radius: 10px; + padding: 3px 5px; + top: -5px; +} + .nav-link:visited { color: #eff4ee; } diff --git a/app/assets/v2/css/grants/fund.css b/app/assets/v2/css/grants/fund.css index d14cb9e08dc..7897881a919 100644 --- a/app/assets/v2/css/grants/fund.css +++ b/app/assets/v2/css/grants/fund.css @@ -181,7 +181,7 @@ padding: 1rem 15px; position: absolute; top: 0px; - left: 0px; + left: 130px; } .clr_estimate.extraleft { diff --git a/app/assets/v2/css/profile.css b/app/assets/v2/css/profile.css index 13a6f68213f..c9301bc20f8 100644 --- a/app/assets/v2/css/profile.css +++ b/app/assets/v2/css/profile.css @@ -1,3 +1,25 @@ + +.tab-projects__item img { + width: 50px; + height: 50px; +} + +.tag-list .tag-list__item { + background: #E8F0FA; + padding: 4px; + border-radius: 2px; + font-size: 14px; + color: #6487AE; +} + +.review-comment { + background: #E4E6E7; + border-radius: 5px; + padding: 5px 7px; + font-size: 12px; + color: #666666; +} + .mh-150{ min-height: 150px; } @@ -89,13 +111,13 @@ .avatar_edit { text-align: center; - background: linear-gradient(to top,rgba(255,255,255,0.6),rgba(255,255,255,0.0)); + background: #000; + opacity: 0.7; border-radius: 0% 0% 50% 50% / 0% 0% 100% 100%; - color: black; - height: 90px; - width: 180px; + height: 60px; + width: 173px; position: absolute; - top: 93px; + top: 122px; margin: auto; right: 0; left: 0; @@ -104,33 +126,27 @@ .avatar_edit_text { position: absolute; - top: 50%; - color: black; + top: 40%; + color: #ffffff; font-weight: bold; - font-size: 20px; + font-size: 14px; margin: auto; width: 100%; height: 40px; } -.is_my_profile a:hover .profile-header__avatar{ - border: 3px solid #0fce7c; +.odd{ + background-color: #f9f9f9; + border-top: #eeeeee 1px solid; + border-bottom: #eeeeee 1px solid; } -.is_my_profile{ - cursor: pointer; +.profile_details .nav-link { + padding: 0.5rem; } -a:hover .avatar_edit { - background-color: rgba(255, 255, 255, 0.7); - height: 180px; - width: 180px; - top: 3px; - border-radius: 50%; -} - -a:hover .avatar_edit .avatar_edit_text { - top: 40%; +.is_editable{ + cursor: pointer; } .picky img { @@ -139,7 +155,6 @@ a:hover .avatar_edit .avatar_edit_text { vertical-align: middle; } - .profile-organizations .organization { display: inline-block; } @@ -148,7 +163,7 @@ a:hover .avatar_edit .avatar_edit_text { min-height: 200px; } -.profile-organizations .organization img{ +.profile-organizations .organization img { max-height: 4rem; max-width: 4rem; margin-right: 0.5rem; @@ -156,7 +171,6 @@ a:hover .avatar_edit .avatar_edit_text { border-radius: 50%; } - @media (max-width: 1200px) { .profile-header{ min-height: 350px; @@ -389,6 +403,19 @@ a:hover .avatar_edit .avatar_edit_text { transform: scale(1.1); } +#kudos_header { + position: absolute; + top: -95px; + right: 0px; + background-color: rgba(255, 255, 255, 0.2); + border-radius: 5px; + padding: 5px; +} +#kudos_header img{ + box-shadow: none; + background: none; +} + .no-profile-button { background-color: #3E00FF; color: #FFFFFF; @@ -402,26 +429,17 @@ a:hover .avatar_edit .avatar_edit_text { .profile-banner { display: flex; top: 0; - bottom: 0; color: #ffffff; z-index: 1; width: 100vw; cursor: pointer; } -.profile-banner:hover { - background: linear-gradient(to top,rgba(255,255,255,0.6),rgba(255,255,255,0.0)); -} - -.profile-banner .h4 { - font-weight: bold; - text-shadow: 1px 1px 1px #000; - opacity: 0.5; - padding: 5px; -} - -.profile-banner:hover .h4 { - opacity: 1; +.profile-banner-cta { + background-color: #000; + padding: 6px 10px; + border-radius: 2px; + cursor: pointer; } .picky { @@ -440,4 +458,8 @@ nav.navbar.navbar-dark{ background-image: url(/static/v2/images/header-bg.png); } - +#rank_link{ + font-size: 12px; + color: black; + text-decoration: underline; +} \ No newline at end of file diff --git a/app/assets/v2/images/project_logos/eth_small.png b/app/assets/v2/images/project_logos/eth_small.png new file mode 100644 index 00000000000..cdb4483614d Binary files /dev/null and b/app/assets/v2/images/project_logos/eth_small.png differ diff --git a/app/assets/v2/js/base.js b/app/assets/v2/js/base.js index e37144a40f4..19137f638cf 100644 --- a/app/assets/v2/js/base.js +++ b/app/assets/v2/js/base.js @@ -244,8 +244,7 @@ if ($('#is-authenticated').val() === 'True' && !localStorage['notify_policy_upda $('#notify_policy_update').bootstrapModal('show'); } -if (document.contxt.github_handle && !document.contxt.persona_is_funder && !document.contxt.persona_is_hunter) { - +var show_persona_modal = function(e) { const content = $.parseHTML( ` +
+ +
+ + + + + + +
+
@@ -106,7 +117,7 @@
- +
diff --git a/app/dashboard/templates/profiles/activity_level.html b/app/dashboard/templates/profiles/activity_level.html new file mode 100644 index 00000000000..d7ae436d3c9 --- /dev/null +++ b/app/dashboard/templates/profiles/activity_level.html @@ -0,0 +1,22 @@ +{% load i18n static avatar_tags %} +
+
+
+ {% if profile.activity_level %} + {{ profile.activity_level }} + {% else %} +   + {% endif %} + {% trans "Activity Level" %} + +
+
+
    + {% include 'profiles/activity_stats.html' %} +
+
+
+
\ No newline at end of file diff --git a/app/dashboard/templates/profiles/activity_stats.html b/app/dashboard/templates/profiles/activity_stats.html new file mode 100644 index 00000000000..207e0d25f39 --- /dev/null +++ b/app/dashboard/templates/profiles/activity_stats.html @@ -0,0 +1,58 @@ +{% load humanize %} +{% if not profile.is_org %} +
  • + Last Seen: {{profile.last_visit|naturaltime}} +
  • +
  • + Reliability: {{profile.reliability}} + (Details) + + +
  • +
    +
  • + Joined: {{profile.created_on|naturaltime}} +
  • + {% if profile.success_rate != -1 %} +
  • + + Success Rate: {{profile.success_rate}}% +
  • + {% endif %} +
  • + + Repeat {% if profile.persona_is_funder %}Workers{%else%}Funders{%endif%}: {{profile.num_repeated_relationships}} +
  • + {% if profile.persona_is_hunter %} +
  • + + Longest Streak: {{profile.longest_streak}} weekdays +
  • + {% endif %} +
    + {% if profile.avg_hourly_rate %} +
  • + + Avg Hourly Rate ${{profile.avg_hourly_rate|floatformat:2}} +
  • + {% endif %} +{% endif %} diff --git a/app/dashboard/templates/profiles/earningsgraph.html b/app/dashboard/templates/profiles/earningsgraph.html new file mode 100644 index 00000000000..2f72e3f7c37 --- /dev/null +++ b/app/dashboard/templates/profiles/earningsgraph.html @@ -0,0 +1,32 @@ +{% load humanize %} + + + + + +
    +
    +
    +
    + + +
    \ No newline at end of file diff --git a/app/dashboard/templates/profiles/header_avatar.html b/app/dashboard/templates/profiles/header_avatar.html new file mode 100644 index 00000000000..345735606ba --- /dev/null +++ b/app/dashboard/templates/profiles/header_avatar.html @@ -0,0 +1,20 @@ +{% load i18n static avatar_tags %} + \ No newline at end of file diff --git a/app/dashboard/templates/profiles/header_details.html b/app/dashboard/templates/profiles/header_details.html new file mode 100644 index 00000000000..dd8b34ee1c6 --- /dev/null +++ b/app/dashboard/templates/profiles/header_details.html @@ -0,0 +1,78 @@ +{% load i18n static avatar_tags add_url_schema email_obfuscator %} + +

    + {{ profile.name }} + {% if verification %} + + {% endif %} +

    +

    {{ profile.handle }} + {% if profile.custom_tagline %} + - {{ profile.custom_tagline }} + {% endif %} +

    + + +{% if profile.data.bio %} +
    + {{ profile.data.bio }} +
    +{% endif %} + +{% if profile.preferred_payout_address %} +
    + + {{ profile.preferred_payout_address }} + {% if is_my_profile %} + Update preferred address + {% endif %} +
    +{% else %} +
    + {% if is_my_profile %} + Add a preferred address + {% elif not profile.is_org %} + No preferred address + {% endif %} +
    +{% endif %} +
    + {% for i in ratings %} + + {% endfor %} + ({{ avg_rating.total_rating }} {% trans "rating" %}{{avg_rating.total_rating | pluralize}}) +
    +{% if profile.show_job_status %} +
    + {{ profile.job_status_verbose }} +
    +{% endif %} +
    \ No newline at end of file diff --git a/app/dashboard/templates/profiles/heatmap.html b/app/dashboard/templates/profiles/heatmap.html new file mode 100644 index 00000000000..09b4850a3d2 --- /dev/null +++ b/app/dashboard/templates/profiles/heatmap.html @@ -0,0 +1,30 @@ +{% load humanize %} + + + + + +
    +
    + + +
    \ No newline at end of file diff --git a/app/dashboard/templates/profiles/leaderboard.html b/app/dashboard/templates/profiles/leaderboard.html new file mode 100644 index 00000000000..e22f5b9aa34 --- /dev/null +++ b/app/dashboard/templates/profiles/leaderboard.html @@ -0,0 +1,30 @@ +{% load i18n static avatar_tags humanize %} +{% if not hidden %} + +
    +

    Leaderboard

    + {% if leaderboard|length == 0 %} + None Found + {% endif %} + {% for item in leaderboard %} +
    +
    + {{ forloop.counter }} +
    +
    + + +
    +
    +
    +
    @{{item.0}}
      +
    + View Profile > +
    + {{item.1}} transaction{{item.1|pluralize}} / ${{item.2|floatformat:0|intcomma}} +
    +
    +
    + {% endfor %} +
    +{% endif %} diff --git a/app/dashboard/templates/profiles/organization.html b/app/dashboard/templates/profiles/organization.html index b5a465213ae..3b3ad4c0bdc 100644 --- a/app/dashboard/templates/profiles/organization.html +++ b/app/dashboard/templates/profiles/organization.html @@ -15,20 +15,30 @@ along with this program. If not, see . {% endcomment %} {% load i18n static avatar_tags %} +
    +   +
    - {% if scoreboard_position_org %} - #{{ scoreboard_position_org }} - {% else %} -   - {% endif %} - {% trans "Organization" %} + {% include "profiles/rank_tooltip.html" with name="Organization" %} + {{ profile.rank_org }} + {% trans "OrganizationRank" %}
      -
    • {{ count_bounties_on_repo }} {% trans "bounties" %}
    • -
    • {{ sum_eth_on_repos|floatformat:2 }} {% trans "ETH" %}
    • +
    • {{ count_bounties_on_repo }} {% trans "Bounties" %}
    • +
    • {{ sum_eth_on_repos|floatformat:2 }} {% trans "ETH" %} Spent
    • +
    • + {% if scoreboard_position_org %} +
    • + #{{ scoreboard_position_org }} + {% trans "On Leaderboard" %} + (View) +
    • + {% endif %} + +
    • {% if works_with_org|length %} {% trans "Contributors" %}: @@ -47,4 +57,5 @@
    + {% include "profiles/activity_stats.html" %}
    diff --git a/app/dashboard/templates/profiles/profile.html b/app/dashboard/templates/profiles/profile.html index cf482bb310d..f128b075803 100644 --- a/app/dashboard/templates/profiles/profile.html +++ b/app/dashboard/templates/profiles/profile.html @@ -1,4 +1,4 @@ -{% load i18n email_obfuscator humanize static add_url_schema avatar_tags %} +{% load i18n humanize static avatar_tags kudos_extras %} @@ -20,287 +20,78 @@ {% include 'shared/tag_manager_2.html' %} {% include 'shared/top_nav.html' with class='d-md-flex' %} {% include 'home/nav.html' %} -
    - {% csrf_token %} - {% if is_my_profile %} -
    -
    - Edit Header Photo -
    -
    - {% endif %} - {% if not hidden and is_staff %} +
    + {% csrf_token %} + {% if not hidden and is_staff %} {% endif %} + {% if is_editable %} +
    +
    +
    +
    + + + Update Header Image + +
    +
    +
    +
    + {% endif %}
    +
    +
    + {% if total_kudos_count %} +
    + {% for kudos_group in my_kudos %} + + {% endfor %} +
    + {% endif %} -
    -
    -
    - {% if not hidden %} - - -

    - {{ profile.name }} - {% if verification.verified %} - - {% endif %} -

    -

    {{ profile.handle }} - {% if profile.custom_tagline %} - - {{ profile.custom_tagline }} - {% endif %} -

    -
    - {% for i in ratings %} - - {% endfor %} - ({{ avg_rating.total_rating }} {% trans "rating" %}{{avg_rating.total_rating | pluralize}}) -
    - - - {% if preferred_payout_address %} - +
    + {% if not hidden %} + {% include 'profiles/header_avatar.html' %} + {% include 'profiles/header_details.html' %} -
    - - {{ preferred_payout_address }} -
    - {% else %} -
    - {% if user.is_authenticated and request.path == '/profile/' %} - Add a preferred address - {% else %} - No preferred address - {% endif %} -
    - {% endif %} - {% if profile.show_job_status %} -
    - {{ profile.job_status_verbose }} - {% if profile.resume %}View Resume{% endif %} -
    - {% endif %} - {% if profile.data.bio %} -
    - {{ profile.data.bio }} -
    - {% endif %} -
    {% if not hidden %} {% if profile.is_org %} {% include 'profiles/organization.html' %} {% else %} -
    -
    -
    -
    -
    - {% if scoreboard_position_contributor %} - #{{ scoreboard_position_contributor }} - {% else %} -   - {% endif %} - {% trans "Contributor" %} -
    -
    -
      -
    • {{ count_bounties_completed }} {% trans "bounties completed" %}
    • -
    • {{ sum_eth_collected|floatformat:2 }} ETH {% trans "collected" %}
    • - {% if no_times_been_removed %} -
    • - {% trans "removed from" %} {{ no_times_been_removed }} {% trans "bounties" %}
    • - {% endif %} -
    • - {% if works_with_collected|length %} - Contributes To: - {% for profile, num_times in works_with_collected.items %} - {% if forloop.counter < 6 %} - - - - {% endif %} - {% endfor %} - {% if works_with_collected|length > 5 %} -
      +{{works_with_collected|length|add:"-5"}}
      - {% endif %} - {% endif %} -
    • -
    -
    -
    -
    -
    -
    -
    - {% if scoreboard_position_funder %} - #{{ scoreboard_position_funder }} - {% else %} -   - {% endif %} - {% trans "Funder" %} -
    -
    -
      -
    • {{ funded_bounties_count }} {% trans "bounties funded" %}
    • -
    • {{ sum_eth_funded|floatformat:2 }} ETH {% trans "funded" %}
    • -
    • - {% if works_with_funded|length %} - {% trans "Funds" %}: - {% for profile, num_times in works_with_funded.items %} - {% if forloop.counter < 6 %} - - - - {% endif %} - {% endfor %} - {% if works_with_funded|length > 5 %} -
      +{{works_with_funded|length|add:"-5"}}
      - {% endif %} - {% endif %} -
    • -
    -
    -
    -
    -
    -
    + {% if profile.cascaded_persona == 'funder' %} + {% include 'profiles/scorecard_funder.html' %} + {% elif profile.cascaded_persona == 'hunter' %} + {% include 'profiles/scorecard_hunter.html' %} + {% else %} + {% include 'profiles/scorecard_hunter.html' %} {% endif %} - {% endif %}
    - {% endif%} - - {% if not hidden and not profile.is_org %} -
    -
    - {% include "shared/profile_kudos.html" %} -
    + {% endif %} + {% endif %}
    - {% endif %} - {% if is_my_profile and not hidden %} - {% include "shared/rate_bounties.html" %} - {% endif %}
    + {% endif%} + + {% include 'profiles/tabs.html' %} +
    {% if hidden %} {% include 'profiles/hidden.html' %} - {% else %} - - {% if not profile.is_org and profile.organizations|length %} -
    -
    -
    -
    - {% trans "Organizations" %} ({{ profile.organizations|length }}) -
    -
    -
    -
    -
    -
    - {% for org in profile.organizations %} -
    - - - -
    - {% endfor %} -
    -
    -
    -
    - {% endif %} - - {% if tabs %} -
    -
    -
    -
    - {% trans 'By Created Date' %} -
    -
    - {% for tab in tabs %} - - {% endfor %} -
    -
    - {% for tab in tabs %} -
    -
    -
    -
    - {% if show_activity %} - {% if tab.type == 'activity' %} - {% include 'profiles/profile_activities.html' with activities=tab.objects %} - {% else %} - {% include 'profiles/profile_bounties.html' with bounties=tab.objects %} - {% endif %} - {% endif %} -
    -
    -
    -
    - {% endfor %} -
    -
    - - -
    -
    -
    -
    - {% else %} - {% include 'profiles/none.html' %} {% endif %} - {% endif %}
    + + {% include 'profiles/tabs_close.html' %} +
    + {% include 'shared/result.html' %} {% include 'shared/bottom_notification.html' %} {% include 'shared/footer.html' %} @@ -315,16 +106,16 @@

    + - + \ No newline at end of file diff --git a/app/dashboard/templates/profiles/rank_tooltip.html b/app/dashboard/templates/profiles/rank_tooltip.html new file mode 100644 index 00000000000..1fdd94084a2 --- /dev/null +++ b/app/dashboard/templates/profiles/rank_tooltip.html @@ -0,0 +1,25 @@ + diff --git a/app/dashboard/templates/profiles/scorecard_funder.html b/app/dashboard/templates/profiles/scorecard_funder.html new file mode 100644 index 00000000000..85767f2c99b --- /dev/null +++ b/app/dashboard/templates/profiles/scorecard_funder.html @@ -0,0 +1,76 @@ +{% load i18n static avatar_tags %} +
    +
    +
    +
    +
    + {{ profile.rank_funder }} + {% trans "FunderRank" %} + {% include "profiles/rank_tooltip.html" with name="Funder" %} +
    +
    +
      + {% if is_my_profile %} +
    • + Persona: Funder (Toggle) +
    • + {% endif %} +
    • + {{ spent_count }} Transaction{{spent_count|pluralize}} + (Details) + +
    • +
      +
    • + - {{ funded_bounties_count }} Bountie{{funded_bounties_count|pluralize}} Funded +
    • +
    • + - {{ hackathons_funded }} Hackathon{{hackathons_funded|pluralize}} Participated +
    • +
    • + - {{ total_tips_Sent }} + Tip{{total_tips_Sent|pluralize}} Sent +
    • +
    • + - {{ total_kudos_Sent_count }} + Kudo{{total_kudos_Sent_count|pluralize}} Sent +
    • +
    • + - {{ total_grant_contributions }} + Grant{{total_grant_contributions|pluralize}} Created +
    • +
      +
    • + ${{ spent_total }} {% trans "Funded" %} +
    • + {% if scoreboard_position_funder %} +
    • + #{{ scoreboard_position_funder }} + {% trans "On Leaderboard" %} + (View) +
    • + {% endif %} + +
    • + {% if works_with_funded|length %} + + + {% trans "Funds" %}: + + {% for profile, num_times in works_with_funded.items %} + {% if forloop.counter < 6 %} + + + + {% endif %} + {% endfor %} + {% if works_with_funded|length > 5 %} +
      +{{works_with_funded|length|add:"-5"}}
      + {% endif %} + {% endif %} +
    • +
    +
    +
    +
    + {% include "profiles/activity_level.html" %} \ No newline at end of file diff --git a/app/dashboard/templates/profiles/scorecard_hunter.html b/app/dashboard/templates/profiles/scorecard_hunter.html new file mode 100644 index 00000000000..e13b1509953 --- /dev/null +++ b/app/dashboard/templates/profiles/scorecard_hunter.html @@ -0,0 +1,86 @@ +{% load i18n static avatar_tags %} +
    +
    +
    +
    +
    + {{ profile.rank_coder }} + {% trans "ContributorRank" %} + {% include "profiles/rank_tooltip.html" with name="Contributor" %} +
    +
    +
      + {% if is_my_profile %} +
    • + Persona: Contributor (Toggle) +
    • + {% endif %} +
    • + {{ earnings_count }} Transaction{{earnings_count|pluralize}} + (Details) + +
    • +
      +
    • + - {{ count_bounties_completed }} + Bounties Completed +
    • + {% if no_times_been_removed %} +
    • + - {% trans "Removed From" %} + {{ no_times_been_removed }} + {% trans "Bounties" %} +
    • + {% endif %} +
    • + - {{ hackathons_participated_in }} Hackathon{{hackathons_participated_in|pluralize}} participated +
    • +
    • + - {{ total_tips_received }} + Tip{{total_tips_received|pluralize}} received +
    • +
    • + - {{ total_kudos_received_count }} + Kudo{{total_kudos_received_count|pluralize}} received +
    • +
    • + - {{ total_grant_created }} + Grant{{total_grant_created|pluralize}} created +
    • +
      +
    • + ${{ earnings_total }} + {% trans "Earned" %} +
    • + {% if scoreboard_position_contributor %} +
    • + #{{ scoreboard_position_contributor }} + {% trans "On Leaderboard" %} + (View) +
    • + {% endif %} +
    • + {% if works_with_collected|length %} + Contributes To: + {% for profile, num_times in works_with_collected.items %} + {% if forloop.counter < 6 %} + + + + {% endif %} + {% endfor %} + {% if works_with_collected|length > 5 %} +
      +{{works_with_collected|length|add:"-5"}}
      + {% endif %} + {% endif %} +
    • +
    +
    + {% for keyword in profile.keywords %} + {{keyword}} + {% endfor %} +
    +
    +
    +
    + {% include "profiles/activity_level.html"%} diff --git a/app/dashboard/templates/profiles/status_box.html b/app/dashboard/templates/profiles/status_box.html new file mode 100644 index 00000000000..e9292db4e05 --- /dev/null +++ b/app/dashboard/templates/profiles/status_box.html @@ -0,0 +1,31 @@ +{% load static %} +
    + {% csrf_token %} + + +
    + + + + +
    + +
    + +
    +
    diff --git a/app/dashboard/templates/profiles/tab_active.html b/app/dashboard/templates/profiles/tab_active.html new file mode 100644 index 00000000000..e0da2b794b8 --- /dev/null +++ b/app/dashboard/templates/profiles/tab_active.html @@ -0,0 +1,23 @@ +{% load i18n static avatar_tags humanize %} + +
    + {% for bounty in active_bounties %} +
    + +
    +
    +
    {{bounty.title}}
      +
    + Bounty opened {{bounty.web3_created|naturaltime}} for {{bounty.org_name}} +
    + {% for keyword in bounty.keywords_list %} + {{keyword}} + {% endfor %} +
    +
    + +
    + {% endfor %} +
    diff --git a/app/dashboard/templates/profiles/tab_activity.html b/app/dashboard/templates/profiles/tab_activity.html new file mode 100644 index 00000000000..a530c438aed --- /dev/null +++ b/app/dashboard/templates/profiles/tab_activity.html @@ -0,0 +1,50 @@ +{% load i18n static %} + +
    +
    + {% include "profiles/heatmap.html" %} +
    +
    + +{% if is_my_profile %} + {% include 'profiles/status_box.html' %} +{% endif %} + +
    +
    +
    +
    + {% for tab in tabs %} + + {% endfor %} +
    +
    + {% for tab in tabs %} +
    +
    +
    +
    + {% if show_activity %} + {% if tab.type == 'activity' %} + {% include 'profiles/profile_activities.html' with activities=tab.objects %} + {% else %} + {% include 'profiles/profile_bounties.html' with bounties=tab.objects %} + {% endif %} + {% endif %} +
    +
    +
    +
    + {% endfor %} +
    +
    + + +
    +
    +
    +
    \ No newline at end of file diff --git a/app/dashboard/templates/profiles/tab_earnings.html b/app/dashboard/templates/profiles/tab_earnings.html new file mode 100644 index 00000000000..2ee3e0aa4bf --- /dev/null +++ b/app/dashboard/templates/profiles/tab_earnings.html @@ -0,0 +1,49 @@ +{% load i18n static avatar_tags humanize %} +{% if not hidden %} +{% if is_editable %} + + +{% if not profile.is_org %} +
    +
    + {% if earnings_type == 'spent' %} + {% include "profiles/earningsgraph.html" with amount=spent_total graph_type="spent" %} + {% else %} + {% include "profiles/earningsgraph.html" with amount=earnings_total graph_type="earnings" %} + {% endif %} +
    +
    +{% endif %} + +{% if earnings_type == 'spent' %} + {% include 'profiles/leaderboard.html' with leaderboard=profile.sent_leaderboard %} +{% else %} + {% include 'profiles/leaderboard.html' with leaderboard=profile.contrib_leaderboard %} +{% endif %} + +
    +

    Earnings

    + {% if earnings.count == 0 %} + No Earnings + {% endif %} + {% for earning in earnings %} +
    +
    + + +
    +
    +
    +
    ${{earning.value_usd}}
      +
    + from {{earning.from_profile.handle}} to {{earning.to_profile.handle}} {{earning.created_on | naturaltime}} + {% if earning.url %} + [source] + {% endif %} + +
    +
    + {% endfor %} +
    +{% endif %} +{% endif %} diff --git a/app/dashboard/templates/profiles/tab_kudos.html b/app/dashboard/templates/profiles/tab_kudos.html new file mode 100644 index 00000000000..d58ae71191d --- /dev/null +++ b/app/dashboard/templates/profiles/tab_kudos.html @@ -0,0 +1,13 @@ +{% load i18n static %} + +{% if not hidden %} +
    +
    + {% if profile.is_org %} + {% include "shared/org_kudos.html" %} + {% else %} + {% include "shared/profile_kudos.html" %} + {% endif %} +
    +
    +{% endif %} \ No newline at end of file diff --git a/app/dashboard/templates/profiles/tab_orgs.html b/app/dashboard/templates/profiles/tab_orgs.html new file mode 100644 index 00000000000..7dcbbd6841a --- /dev/null +++ b/app/dashboard/templates/profiles/tab_orgs.html @@ -0,0 +1,28 @@ +{% load i18n static avatar_tags humanize %} +{% if not hidden %} + +
    + {% if profile.organizations|length == 0 %} + No Organizations + {% endif %} + {% for org in profile.organizations %} +
    +
    + + +
    +
    +
    +
    {{org}}
      +
    + {% if earning.url %} + View Profile + {% endif %} + +
    +
    + {% endfor %} +
    +{% endif %} diff --git a/app/dashboard/templates/profiles/tab_people.html b/app/dashboard/templates/profiles/tab_people.html new file mode 100644 index 00000000000..2ab2e6d7bec --- /dev/null +++ b/app/dashboard/templates/profiles/tab_people.html @@ -0,0 +1,32 @@ +{% load i18n static avatar_tags humanize %} +{% if not hidden %} + +
    +

    Core Team

    + {% if profile.team|length == 0 %} + No People + {% endif %} + {% for org in profile.team %} +
    +
    + + +
    +
    +
    +
    {{org}}
      +
    + {% if earning.url %} + View Profile + {% endif %} + +
    +
    + {% endfor %} +
    + +{% include 'profiles/leaderboard.html' with leaderboard=profile.org_leaderboard %} + +{% endif %} diff --git a/app/dashboard/templates/profiles/tab_portfolio.html b/app/dashboard/templates/profiles/tab_portfolio.html new file mode 100644 index 00000000000..44bbcdc5c30 --- /dev/null +++ b/app/dashboard/templates/profiles/tab_portfolio.html @@ -0,0 +1,108 @@ +{% load i18n static avatar_tags humanize %} +
    Specified Skillset
    +
    + {% for keyword in profile.keywords %} + {{keyword}} + {% endfor %} +
    + +{% if portfolio_keywords|length %} +
    Skills From Gitcoin Bounties
    +
    + {% for key_val in portfolio_keywords %} + {% if key_val.0 %} + {{key_val.0}}: {{key_val.1}}x + {% endif %} + {% endfor %} +
    +{% endif %} + + +{% if is_my_profile %} +
    +
    Add a project
    +
    + Only visible to you +
    +
    +
    +
    + {% csrf_token %} +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
     
    + +
    +
    +
    +
    +
    +
    +{% endif %} +
    + +
    Projects
    + +
    + {% for submission in portfolio %} +
    + +
    +
    +
    {{submission.bounty.title}}
      +
    +

    {{submission.bounty.created_on|naturaltime}} for {{submission.bounty.org_name}}

    +
    + {% for keyword in submission.bounty.keywords_list %} + {{keyword}} + {% endfor %} +
    +
    +
    + View Bounty > + {% if submission.fulfiller_github_url %} + View Work > + {% endif %} +
    +
    + {% endfor %} + + {% for pi in profile.portfolio_items.all %} +
    + +
    +
    +
    {{pi.title}}
      + {{pi.created_on|naturaltime}} +
    +
    + {% for keyword in pi.tags %} + {{keyword}} + {% endfor %} +
    +
    +
    + {% if pi.link %} + View Work > + {% endif %} +
    +
    + {% endfor %} + +
    + + + diff --git a/app/dashboard/templates/profiles/tab_ratings.html b/app/dashboard/templates/profiles/tab_ratings.html new file mode 100644 index 00000000000..025d17897dd --- /dev/null +++ b/app/dashboard/templates/profiles/tab_ratings.html @@ -0,0 +1,85 @@ +{% load i18n static %} +{% if is_editable %} +
    + {% include "shared/rate_bounties.html" %} +
    +{% endif %} +
    + {% for i in ratings %} + + {% endfor %} +
    +   {{ avg_rating_scaled.total_rating }} {% trans "rating" %}{{avg_rating_scaled.total_rating | pluralize}} +
    +
    +
    +
    +
    +
    + Satisfaction +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + Speed +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + Recommend to other funders +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + Communication/Responsivess +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + Quality of Code Submission +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    Reviews
    + {% for feedback in feedbacks_got %} +
    + {% include "shared/feedback.html" %} +
    + {% endfor %} +
    \ No newline at end of file diff --git a/app/dashboard/templates/profiles/tab_resume.html b/app/dashboard/templates/profiles/tab_resume.html new file mode 100644 index 00000000000..cc6ff570ae2 --- /dev/null +++ b/app/dashboard/templates/profiles/tab_resume.html @@ -0,0 +1,48 @@ +{% load i18n static humanize %} + +{% if not hidden and not profile.is_org and show_resume_tab %} +
    Job Preferences
    +
    +
    + {% if is_my_profile %} +
    + + Only visible to you +
    + Edit this info +
    + {% endif %} + + {% if profile.job_status_verbose %} + + {{profile.job_status_verbose}} ({{profile.job_type}}) + {% endif %} +
    + + {% if profile.job_location %} +
    + + + Looking for companies in {% for loc in profile.job_location %}{{loc.name}}, {% endfor %} {% if profile.remote %}(Remote OK){%endif%} + +
    + {% endif %} + + {% if profile.job_salary %} +
    + + Compensation Expectation USD ${{profile.job_salary|intcomma}}/month +
    + {% endif %} +
    +
    + {% if profile.resume %} +
    +
    Resume
    + Download Resume +
    + + + + {% endif %} +{% endif %} diff --git a/app/dashboard/templates/profiles/tab_spent.html b/app/dashboard/templates/profiles/tab_spent.html new file mode 100644 index 00000000000..07d5cb80f03 --- /dev/null +++ b/app/dashboard/templates/profiles/tab_spent.html @@ -0,0 +1 @@ +{% include 'profiles/tab_earnings.html' with earnings=spent earnings_type="spent"%} \ No newline at end of file diff --git a/app/dashboard/templates/profiles/tab_viewers.html b/app/dashboard/templates/profiles/tab_viewers.html new file mode 100644 index 00000000000..ef474c04a88 --- /dev/null +++ b/app/dashboard/templates/profiles/tab_viewers.html @@ -0,0 +1,33 @@ +{% load i18n static avatar_tags humanize %} +{% if not hidden %} + {% if is_editable %} + {% if profile.viewed_by.count > 1 %} + {% include "profiles/earningsgraph.html" with amount=profile.viewed_by.count graph_type="viewers" %} + {% endif %} + +
    + {% if profile.viewed_by.count == 0 %} + No Viewers + {% endif %} + {% for viewer in profile.viewed_by.all %} +
    + +
    +
    +
    {{viewer.viewer.handle}}
      +
    + Viewed profile {{viewer.created_on | naturaltime}} +
    + {% for keyword in viewer.keywords %} + {{keyword}} + {% endfor %} +
    +
    + +
    + {% endfor %} +
    + {% endif %} +{% endif %} diff --git a/app/dashboard/templates/profiles/tabs.html b/app/dashboard/templates/profiles/tabs.html new file mode 100644 index 00000000000..5fdd88947bf --- /dev/null +++ b/app/dashboard/templates/profiles/tabs.html @@ -0,0 +1,124 @@ +{% load i18n static %} +{% if not hidden %} +
    +
    + +
    +{% endif %} + + +
    +
    +
    +
    +
    + {% if tab == 'kudos' %} + {% include 'profiles/tab_kudos.html' %} + {% elif tab == 'resume' %} + {% include 'profiles/tab_resume.html' %} + {% elif tab == 'active' %} + {% include 'profiles/tab_active.html' %} + {% elif tab == 'portfolio' %} + {% include 'profiles/tab_portfolio.html' %} + {% elif tab == 'orgs' %} + {% include 'profiles/tab_orgs.html' %} + {% elif tab == 'people' %} + {% include 'profiles/tab_people.html' %} + {% elif tab == 'activity' %} + {% include 'profiles/tab_activity.html' %} + {% elif tab == 'ratings' %} + {% include 'profiles/tab_ratings.html' %} + {% elif tab == 'viewers' %} + {% include 'profiles/tab_viewers.html' %} + {% elif tab == 'earnings' %} + {% include 'profiles/tab_earnings.html' %} + {% elif tab == 'spent' %} + {% include 'profiles/tab_spent.html' %} + {% endif %} +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/app/dashboard/templates/profiles/tabs_close.html b/app/dashboard/templates/profiles/tabs_close.html new file mode 100644 index 00000000000..1e3225e05d3 --- /dev/null +++ b/app/dashboard/templates/profiles/tabs_close.html @@ -0,0 +1,3 @@ +{% if not hidden and not profile.is_org %} +
    +{% endif %} \ No newline at end of file diff --git a/app/dashboard/templates/rating_capture.html b/app/dashboard/templates/rating_capture.html index c72d3aa1756..0814cdb9dc7 100644 --- a/app/dashboard/templates/rating_capture.html +++ b/app/dashboard/templates/rating_capture.html @@ -29,9 +29,8 @@

    {% trans 'How was your bounty experience?' %}

    {% trans 'You’ve recently completed one or more bounties on Gitcoin. Help us improve Gitcoin by rating your bounty experience!' %}

    -

    {% trans 'Only Gitcoin admins are able to see your feedback.' %}

    diff --git a/app/dashboard/templates/rating_modal.html b/app/dashboard/templates/rating_modal.html index dcf60a88836..709010f6545 100644 --- a/app/dashboard/templates/rating_modal.html +++ b/app/dashboard/templates/rating_modal.html @@ -32,7 +32,7 @@

    Funder {% endif %}

    -

    {% trans 'Your feedback is very valuable for us! Only Gitcoin admins are able to see your feedback.' %}

    +

    {% trans 'Your feedback is very valuable for us!' %}

    {% if bounty.funding_organisation %} {{ bounty.funding_organisation }} @@ -73,6 +73,11 @@
    {{ bounty.title }}
    +
    + + +
    +
    diff --git a/app/dashboard/templates/shared/feedback.html b/app/dashboard/templates/shared/feedback.html new file mode 100644 index 00000000000..81e97fa4f0a --- /dev/null +++ b/app/dashboard/templates/shared/feedback.html @@ -0,0 +1,49 @@ +{% comment %} + Copyright (C) 2019 Gitcoin Core + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +{% endcomment %} +{% load i18n staticfiles avatar_tags%} + +
    +
    + + +
    +
    + +
    +
    +
    + {% if feedback.private %} +
    + Only visible to you +
    + {% endif %} + @{{feedback.sender_profile}} + for {{feedback.bounty.org_name}}: + {{feedback.bounty.title}} + +
    +
    + {% for rating in ratings %} + + {% endfor %} +
    +
    +
    + +{% if feedback.comment %} + {{ feedback.comment }} +{% endif %} diff --git a/app/dashboard/templates/shared/org_kudos.html b/app/dashboard/templates/shared/org_kudos.html new file mode 100644 index 00000000000..c081061e8d7 --- /dev/null +++ b/app/dashboard/templates/shared/org_kudos.html @@ -0,0 +1,59 @@ +{% comment %} + Copyright (C) 2019 Gitcoin Core + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +{% endcomment %} +{% load i18n static kudos_extras %} + +
    +
    +
    + {% for kudos_group in org_kudos %} +
    +
    +
    +
    + {{ kudos_group.name|humanize_name }} +
    + +

    + {{ kudos_group.description|truncatechars:60 }} +

    +
    +
    + +
    +
    +
    + {% endfor %}
    +
    + {% if not org_kudos %} +
    +

    What is Kudos?

    +
    + {% trans + {% trans +
    + More About Kudos +
    + {% endif %} +
    + + +
    + diff --git a/app/dashboard/templates/shared/profile_rank_link.html b/app/dashboard/templates/shared/profile_rank_link.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/app/dashboard/templates/shared/rate_bounties.html b/app/dashboard/templates/shared/rate_bounties.html index 0b8ad2c765a..b4d7b60a54c 100644 --- a/app/dashboard/templates/shared/rate_bounties.html +++ b/app/dashboard/templates/shared/rate_bounties.html @@ -15,7 +15,7 @@ along with this program. If not, see . {% endcomment %} {% load i18n static %} -
    +
    {% if unrated_contributed_bounties|length > 0 or unrated_funded_bounties|length > 0 %} -
    +
    {% endif %} diff --git a/app/retail/templates/emails/new_bounty_acceptance.txt b/app/retail/templates/emails/new_bounty_acceptance.txt index 5376514e6a3..8a7b6babee4 100644 --- a/app/retail/templates/emails/new_bounty_acceptance.txt +++ b/app/retail/templates/emails/new_bounty_acceptance.txt @@ -6,8 +6,7 @@ Your funded issue has been accepted, and the fulfillment transaction is now on t {% if unrated_count > 0 %} How was your experience? - Help us improve Gitcoin by rating your bounty experience! Only Gitcoin admins are able to see your feedback. - Rate your bounty experience: {% url "profile" %}#ratingTabs + Help us improve Gitcoin by rating your bounty experience! {% url "profile" %}ratings#ratingTabs {% endif %} You are receiving this email because your email address is on the notification list for this funded issue. diff --git a/app/retail/templates/home/nav.html b/app/retail/templates/home/nav.html index 6b8b6be7902..0100065608f 100644 --- a/app/retail/templates/home/nav.html +++ b/app/retail/templates/home/nav.html @@ -73,6 +73,12 @@ {% trans "Results" %} + + {% trans "Leaderboard" %} + + + {% trans "Activity Feed" %} +
    @@ -92,7 +98,7 @@ {% trans "Blog" %} - {% trans "No Token" %} + {% trans "No Utility Token ICO" %} {% trans "Jobs" %} diff --git a/app/retail/templates/leaderboard.html b/app/retail/templates/leaderboard.html index 998ca9058aa..e66c1a3bf33 100644 --- a/app/retail/templates/leaderboard.html +++ b/app/retail/templates/leaderboard.html @@ -145,7 +145,7 @@

    {% trans "None found" %}

    - {{item.count}} Bounties + {{item.count}} transaction{{item.count|pluralize}} ${{item.amount|floatformat:2|intcomma}} diff --git a/app/retail/templates/shared/activity.html b/app/retail/templates/shared/activity.html index 0a0e365a370..362e49eaf45 100644 --- a/app/retail/templates/shared/activity.html +++ b/app/retail/templates/shared/activity.html @@ -76,6 +76,9 @@
    {{ row.metadata.title }} + {% elif row.activity_type == 'status_update' %} + {% trans "updated status" %} + {{ row.metadata.title }} {% elif row.activity_type == 'new_bounty' %} {% trans "funded a new issue: " %}{{ row.urled_title | safe }} {% elif row.activity_type == 'start_work' %} diff --git a/app/retail/templates/shared/bottom_notification.html b/app/retail/templates/shared/bottom_notification.html index 3a41acf5270..2c88f25fe40 100644 --- a/app/retail/templates/shared/bottom_notification.html +++ b/app/retail/templates/shared/bottom_notification.html @@ -17,5 +17,5 @@ {% endcomment %} {% load i18n %}
    - {% blocktrans %}2019 July 18 - A hackathon a day keeps the dayjob blues away. Checkout Gitcoin's virtual hackathon!{% endblocktrans %} + {% blocktrans %}2019 September 19 - Gitcoin's Virtual Hackathon series has distributed over $400k to hackers across the world. Learn more{% endblocktrans %}
    diff --git a/app/retail/views.py b/app/retail/views.py index 852075419ae..1b848ac8668 100644 --- a/app/retail/views.py +++ b/app/retail/views.py @@ -1080,7 +1080,7 @@ def results(request, keyword=None): def activity(request): """Render the Activity response.""" page_size = 15 - activities = Activity.objects.all().order_by('-created') + activities = Activity.objects.all().order_by('-created_on') p = Paginator(activities, page_size) page = int(request.GET.get('page', 1)) @@ -1094,6 +1094,28 @@ def activity(request): return TemplateResponse(request, 'activity.html', context) +@ratelimit(key='ip', rate='30/m', method=ratelimit.UNSAFE, block=True) +def create_status_update(request): + response = {} + if request.POST: + profile = request.user.profile + kwargs = { + 'activity_type': 'status_update', + 'metadata': { + 'title': request.POST.get('data'), + 'ask': request.POST.get('ask'), + } + } + kwargs['profile'] = profile + try: + Activity.objects.create(**kwargs) + response['status'] = 200 + response['message'] = 'Status updated!' + except Exception as e: + response['status'] = 400 + response['message'] = 'Bad Request' + logger.error('Status Update error - Error: (%s) - Handle: (%s)', e, profile.handle if profile else '') + return JsonResponse(response) def help(request): faq = { diff --git a/scripts/crontab b/scripts/crontab index 40fa6042308..cd1f427e969 100644 --- a/scripts/crontab +++ b/scripts/crontab @@ -26,6 +26,7 @@ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/us */10 * * * * cd gitcoin/coin; bash scripts/run_management_command.bash sync_gas_prices >> /var/log/gitcoin/sync_gas_prices.log 2>&1 1 * * * * cd gitcoin/coin; bash scripts/run_management_command.bash sync_gas_guzzlers >> /var/log/gitcoin/sync_gas_guzzlers.log 2>&1 15 1 * * 0 cd gitcoin/coin; bash scripts/run_management_command_if_not_already_running.bash sync_profiles >> /var/log/gitcoin/sync_profiles.log 2>&1 +15 * * * * cd gitcoin/coin; bash scripts/run_management_command_if_not_already_running.bash calc_profile >> /var/log/gitcoin/calc_profile.log 2>&1 15 2 * * * cd gitcoin/coin; bash scripts/run_management_command_if_not_already_running.bash sync_es_profiles >> /var/log/gitcoin/sync_es_profiles.log 2>&1 15 2 * * * cd gitcoin/coin; bash scripts/run_management_command.bash cleanup_dupe_profiles >> /var/log/gitcoin/cleanup_dupe_profiles.log 2>&1 1 * * * * cd gitcoin/coin; bash scripts/run_management_command.bash cleanup_dupe_bounties >> /var/log/gitcoin/cleanup_dupe_bounties.log 2>&1 @@ -86,6 +87,7 @@ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/us 10 1 * * * cd gitcoin/coin; bash scripts/run_management_command.bash output_gas_viz >> /var/log/gitcoin/output_gas_viz.log 2>&1 */15 * * * * cd gitcoin/coin; bash scripts/run_management_command.bash check_gh_ratelimit >> /var/log/gitcoin/gh_ratelimit.log 2>&1 1 * * * * cd gitcoin/coin; bash scripts/run_management_command.bash process_faucet_requests >> /var/log/gitcoin/process_faucet_requests.log 2>&1 +1 1 * * * cd gitcoin/coin; bash scripts/run_management_command.bash create_pagerank > /var/log/gitcoin/create_pagerank.log 2>&1 ## USERS