{% set hide_left_bar = True %} {% extends g.theme.master %} {% block title %}User stats{% endblock %} {% block header %} Statistics about {{user.display_name}}'s contribution {% if category %} in projects of category {{category.fullname}} {% endif %} {% endblock %} {% block content %} {% if user %}

General statistics

{% if last_login %} {% endif %}
Parameter Date Time interval
Registration date {{registration_date.strftime("%d %b %Y, %H:%M:%S (UTC)")}} {{days}} day{% if days != 1 %}s{% endif %} ago
Last login {{last_login.strftime("%d %b %Y, %H:%M:%S (UTC)")}} {{last_login_days}} day{% if last_login_days != 1 %}s{% endif %} ago

Contribution statistics

{% if days >= 30 %} {% endif %} {% if not category %} {% if days >= 30 %} {% endif %} {% endif %} {% if days >= 30 %} {% endif %} {% if days >= 30 %} {% endif %} {% if days >= 30 %} {% endif %} {% if days >= 30 %} {% endif %} {% for key, value in artifacts_by_type.items() %} {% if days >= 30 %} {% endif %} {% if days >= 30 %} {% endif %} {% endfor %} {% if days >= 30 %} {% endif %} {% if days >= 30 %} {% endif %} {% if days >= 30 %} {% endif %} {% if days >= 30 %} {% endif %}
Parameter Total value Average per-month value Last 30 daysTrend
Logins {{totlogins}} {{permonthlogins}} {{lastmonth_logins}} {% if lastmonth_logins > permonthlogins %} {% elif lastmonth_logins == permonthlogins %} {% else %} {%endif%}
{% if totcommits.number > 0 %} Commits number {% else %} Commits number {% endif %} {{totcommits.number}} {{permonthcommits.number}} {{lastmonthcommits.number}} {% if lastmonthcommits.number > permonthcommits.number %} {% elif lastmonthcommits.number == permonthcommits.number %} {% else %} {%endif%}
{% if totcommits.lines > 0 %} Added/modified LOCs {% else %} Added/modified LOCs {% endif %} {{totcommits.lines}} {{permonthcommits.lines}} {{lastmonthcommits.lines}} {% if lastmonthcommits.lines > permonthcommits.lines %} {% elif lastmonthcommits.lines == permonthcommits.lines %} {% else %} {%endif%}
{% if totartifacts.created > 0 %} Total number of created artifacts {% else %} Total number of created artifacts {% endif %} {{totartifacts.created}} {{permonthartifacts.created}} {{lastmonthartifacts.created}} {% if lastmonthartifacts.created > permonthartifacts.created %} {% elif lastmonthartifacts.created == permonthartifacts.created %} {% else %} {%endif%}
{% if totartifacts.modified > 0 %} Total number of edited artifacts {% else %} Total number of edited artifacts {% endif %} {{totartifacts.modified}} {{permonthartifacts.modified}} {{lastmonthartifacts.modified}} {% if lastmonthartifacts.modified > permonthartifacts.modified %} {% elif lastmonthartifacts.modified == permonthartifacts.modified %} {% else %} {%endif%}
{% if value.created > 0 %} Created {{key}} artifacts {% else %} Created {{key}} artifacts {% endif %} {{value.created}} {{value.pmcreated}} {% if lastmonth_artifacts_by_type.get(key) %} {{lastmonth_artifacts_by_type[key].created}} {% else %} 0 {% endif %} {% if lastmonth_artifacts_by_type.get(key) %} {% if lastmonth_artifacts_by_type[key].created > value.pmcreated %} {% elif lastmonth_artifacts_by_type[key].created == value.pmcreated %} {% else %} {%endif%} {%else%} {%endif%}
{% if value.modified > 0 %} Edited {{key}} artifacts {% else %} Edited {{key}} artifacts {% endif %} {{value.modified}} {{value.pmmodified}} {% if lastmonth_artifacts_by_type.get(key) %} {{lastmonth_artifacts_by_type[key].modified}} {% else %} 0 {% endif %} {% if lastmonth_artifacts_by_type.get(key) %} {% if lastmonth_artifacts_by_type[key].modified > value.pmmodified %} {% elif lastmonth_artifacts_by_type[key].modified == value.pmmodified %} {% else %} {%endif%} {%else%} {%endif%}
{% if tottickets.assigned > 0 %} Assigned tickets {% else %} Assigned tickets {% endif %} {{tottickets.assigned}} {{permonthtickets.assigned}} {{lastmonthtickets.assigned}} {% if lastmonthtickets.assigned > permonthtickets.assigned %} {% elif lastmonthtickets.assigned == permonthtickets.assigned %} {% else %} {%endif%}
{% if tottickets.revoked > 0 %} Revoked tickets {% else %} Revoked tickets {% endif %} {{tottickets.revoked}} {{permonthtickets.revoked}} {{lastmonthtickets.revoked}} {% if lastmonthtickets.revoked > permonthtickets.revoked %} {% elif lastmonthtickets.revoked == permonthtickets.revoked %} {% else %} {%endif%}
{% if tottickets.solved > 0 %} Solved tickets {% else %} Solved tickets {% endif %} {{tottickets.solved}} {{permonthtickets.solved}} {{lastmonthtickets.solved}} {% if lastmonthtickets.solved > permonthtickets.solved %} {% elif lastmonthtickets.solved == permonthtickets.solved %} {% else %} {%endif%}
{% if tottickets.averagesolvingtime > 0 %} Average tickets solving time {% else %} Average tickets solving time {% endif %} {% if tottickets.averagesolvingtime %} {{tottickets.averagesolvingtime.days}} days, {{tottickets.averagesolvingtime.hours}} hours, {{tottickets.averagesolvingtime.minutes}} min {% else %}n/a{% endif %} n/a {% if lastmonthtickets.averagesolvingtime %} {{lastmonthtickets.averagesolvingtime.days}} days, {{lastmonthtickets.averagesolvingtime.hours}} hours, {{lastmonthtickets.averagesolvingtime.minutes}} min {% else %}n/a{% endif %} {% if lastmonthtickets.averagesolvingtime > tottickets.averagesolvingtime %} {% elif lastmonthtickets.averagesolvingtime == tottickets.averagesolvingtime %} {% else %} {%endif%}
{% if categories %}

Prefered categories

The following table shows the number projects tagged as belonging to each single category in which this user is involved.

{% for cat, count in categories %} {% endfor %}
Category name Number of projects
{{cat.fullname}} {{count}}
{% if categories|length > 1 %}

The same data listed in the previous table is graphically presented by the following histogram.

{% endif %} {% endif %} {% if category %}
Go back to general statistics
{% else %}

Overview

Field Value Average per-user value Maximum per-user value Rank bar
Code {{codecontribution}} LOC{% if codecontribution != 1 %}s{% endif %}/month {{averagecodecontrib}} LOC{% if averagecodecontrib != 1 %}s{% endif %}/month {{maxcodecontrib}} LOC{% if maxcodecontrib != 1 %}s{% endif %}/month {{codepercentage}} %
Discussion {{discussioncontribution}} contr./month {{averagedisccontrib}} contr./month {{maxdisccontrib}} contr./month {{discussionpercentage}} %
Solved issues {{ticketcontribution}} % {{averageticketcontrib}} % {{maxticketcontrib}} % {{ticketspercentage}} %

Note

The above table compares the average monthly contribution of this user with the average monthly contributions of the other users of the forge. The progressbar and the percentage refer to the user's position in an overall ranking of the users of this forge. For example, a value of 100% in the field "Code" is associated to the user who has the highest average number of committed LOCs per month. Of course, this doesn't consider the quality of the contributions.

{% endif %} {% else %} Invalid user! {% endif %} {% endblock %}