]> git.ipfire.org Git - ipfire.org.git/commitdiff
people: Update design of profile page
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 19 Nov 2020 16:27:49 +0000 (16:27 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 19 Nov 2020 16:27:49 +0000 (16:27 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/accounts.py
src/templates/people/user.html

index 8da02a583af55920236b4bd04804e0b3cc6ff524..e0cf401d0a2c8a915eb4d9a7995f3867889d0c5b 100644 (file)
@@ -888,7 +888,7 @@ class Account(LDAPObject):
                if self.country_name:
                        address.append(self.country_name)
 
-               return address
+               return [line for line in address if line]
 
        def get_street(self):
                return self._get_string("street") or self._get_string("homePostalAddress")
@@ -936,6 +936,12 @@ class Account(LDAPObject):
        def email_to(self):
                return "%s <%s>" % (self, self.email)
 
+       @lazy_property
+       def alternate_email_addresses(self):
+               addresses = self._get_strings("mailAlternateAddress")
+
+               return sorted(addresses)
+
        # Mail Routing Address
 
        def get_mail_routing_address(self):
index a89ec8d0acfd4add0a284fc67f80dbf7ce38c3e6..313994ce408a4d6da39733dd083506e3196ff526 100644 (file)
@@ -1,50 +1,82 @@
-{% extends "base.html" %}
+{% extends "../base.html" %}
 
-{% block main %}
+{% block container %}
        {% import phonenumbers %}
 
-       <div class="card mb-3">
-               <div class="card-body">
-                       {% if account.description %}
-                               <div class="row">
-                                       <div class="col">
-                                               {% module Markdown(account.description) %}
-                                       </div>
+       <div class="header">
+               <div class="container">
+                       <div class="row align-items-center justify-content-center">
+                               <div class="col-4 col-lg-2 text-center">
+                                       <img class="img-fluid rounded-circle my-5"
+                                               src="{{ account.avatar_url(512) }}" alt="{{ account }}" />
                                </div>
-                       {% end %}
 
-                       <div class="row">
-                               <div class="col">
-                                       <a class="btn btn-dark btn-block" href="mailto:{{ account.email }}">
-                                               {{ _("Email %s") % account.first_name }}
-                                       </a>
+                               <div class="col-12 col-lg-10">
+                                       <h2>{{ account }}</h2>
+
+                                       {% if account.description %}
+                                               <div>
+                                                       {% module Markdown(account.description) %}
+                                               </div>
+                                       {% end %}
+
+                                       <div class="btn-toolbar mb-3">
+                                               {% if account.has_shell() %}
+                                                       <a class="btn btn-secondary btn-sm" href="/~{{ account.uid }}/">
+                                                               <span class="fas fa-home mr-2"></span> {{ _("Home Directory") }}
+                                                       </a>
+                                               {% end %}
+
+                                               {% if account.can_be_managed_by(current_user) %}
+                                                       <a class="btn btn-link text-warning btn-sm" href="/users/{{ account.uid }}/edit">
+                                                               {{ _("Edit") }}
+                                                       </a>
+
+                                                       <a class="btn btn-link text-muted btn-sm" href="/users/{{ account.uid }}/passwd">
+                                                               {{ _("Change Password") }}
+                                                       </a>
+                                               {% end %}
+                                       </div>
                                </div>
                        </div>
+               </div>
+       </div>
 
-                       {% if current_user == account or current_user.is_staff() %}
+       {% if current_user == account or current_user.is_staff() %}
+               <div class="container">
+                       <section>
                                <div class="row">
-                                       {% if account.address %}
-                                               <div class="col-md-6 mt-5">
-                                                       <h6>{{ _("Postal Address") }}</h6>
+                                       <div class="col-12 col-lg-6">
+                                               {% if current_user.is_staff() %}
+                                                       <h6>{{ _("Email") }}</h6>
+
+                                                       <ul class="list-unstyled">
+                                                               <li>
+                                                                       <a href="mailto:{{ account.email }}">
+                                                                               {{ account.email }}
+                                                                       </a>
+                                                               </li>
+                                                       </ul>
+                                               {% end %}
+
+                                               {% if account.address %}
+                                                       <h6>{{ _("Address") }}</h6>
 
                                                        <address>
-                                                               <strong>{{ account.name }}</strong>
-                                                               <br>
+                                                               {{ account.name }}<br>
                                                                {% for line in account.address %}
                                                                        {{ line }}<br>
                                                                {% end %}
                                                        </address>
-                                               </div>
-                                       {% end %}
+                                               {% end %}
 
-                                       <div class="col-md-6 mt-5">
                                                {% if account.phone_number or account.fax_number %}
-                                                       <h6 class="mb-2">{{ _("Phone Numbers") }}</h6>
+                                                       <h6>{{ _("Phone Numbers") }}</h6>
 
                                                        <ul class="list-unstyled">
                                                                {% if account.phone_number %}
                                                                        <li>
-                                                                               <span class="fas fa-phone"></span>
+                                                                               <i class="fas fa-phone"></i>
 
                                                                                <a href="tel:{{ format_phone_number_to_e164(account.phone_number) }}">
                                                                                        {{ format_phone_number(account.phone_number) }}
@@ -54,7 +86,7 @@
 
                                                                {% if account.fax_number %}
                                                                        <li>
-                                                                               <span class="fas fa-fax"></span>
+                                                                               <i class="fas fa-fax"></i>
 
                                                                                <a href="fax:{{ format_phone_number_to_e164(account.fax_number) }}">
                                                                                        {{ format_phone_number(account.fax_number) }}
                                                {% end %}
 
                                                {% if account.phone_numbers %}
-                                                       <h6 class="mb-2">{{ _("External Phone Numbers") }}</h6>
+                                                       <h6>{{ _("External Phone Numbers") }}</h6>
 
                                                        <ul class="list-unstyled">
                                                                {% for number in account.phone_numbers %}
                                                                        <li>
                                                                                {% if phonenumbers.number_type(number) == phonenumbers.PhoneNumberType.MOBILE %}
-                                                                                       <span class="fas fa-mobile" title="{{ _("Mobile") }}"></span>
+                                                                                       <i class="fas fa-mobile" title="{{ _("Mobile") }}"></i>
                                                                                {% else %}
-                                                                                       <span class="fas fa-phone"></span>
+                                                                                       <i class="fas fa-phone"></i>
                                                                                {% end %}
 
                                                                                <a href="tel:{{ format_phone_number_to_e164(number) }}"
                                                        </ul>
                                                {% end %}
                                        </div>
-                               </div>
-                       {% end %}
-               </div>
-
-               {% if current_user.is_staff() and account.groups %}
-                       <div class="card-body">
-                               <div class="row">
-                                       <div class="col">
-                                               <h6 class="mb-0">{{ _("Groups") }}</h6>
-                                       </div>
-                               </div>
-                       </div>
 
-                       <div class="list-group list-group-flush">
-                               {% for g in account.groups %}
-                                       <a class="list-group-item list-group-item-active" href="/groups/{{ g.gid }}">
-                                               <i class="fas fa-users mr-2"></i> {{ g }}
-                                       </a>
-                               {% end %}
-                       </div>
-               {% end %}
-       </div>
+                                       {% if current_user.is_staff() %}
+                                               <div class="col-12 col-lg-6">
+                                                       {% if account.groups %}
+                                                               <h6>{{ _("Groups") }}</h6>
 
-       <ul class="list-unstyled small text-muted">
-               <li>
-                       {{ _("Joined %s") % locale.format_date(account.created_at, shorter=True) }}
-               </li>
-
-               {% if current_user.is_admin() %}
-                       <li>
-                               {{ _("Last Modified %s") % locale.format_date(account.modified_at) }}
-                       </li>
+                                                               <div class="list-group mb-3">
+                                                                       {% for g in account.groups %}
+                                                                               <a class="list-group-item list-group-item-action" href="/groups/{{ g.gid }}">
+                                                                                       <i class="fas fa-users mr-2"></i> {{ g }}
+                                                                               </a>
+                                                                       {% end %}
+                                                               </div>
+                                                       {% end %}
 
-                       {% if account.last_successful_authentication %}
-                               <li>
-                                       {{ _("Last successful authentication: %s") % locale.format_date(account.last_successful_authentication) }}
-                               </li>
-                       {% end %}
+                                                       <ul class="list-unstyled small text-muted">
+                                                               <li>
+                                                                       {{ _("Joined %s") % locale.format_date(account.created_at, shorter=True) }}
+                                                               </li>
 
-                       {% if account.failed_login_count %}
-                               <li class="text-warning">
-                                       {{ _("One unsuccessful authentication attempt.", "%(num)s unsuccessful authentication attempts.", account.failed_login_count) % { "num" : account.failed_login_count } }}
+                                                               {% if current_user.is_admin() %}
+                                                                       <li>
+                                                                               {{ _("Last Modified %s") % locale.format_date(account.modified_at) }}
+                                                                       </li>
 
-                                       {% if account.last_failed_authentication %}
-                                               {{ _("Last attempt: %s") % locale.format_date(account.last_failed_authentication) }}
+                                                                       {% if account.last_successful_authentication %}
+                                                                               <li>
+                                                                                       {{ _("Last successful authentication: %s") % locale.format_date(account.last_successful_authentication) }}
+                                                                               </li>
+                                                                       {% end %}
+
+                                                                       {% if account.failed_login_count %}
+                                                                               <li class="text-warning">
+                                                                                       {{ _("One unsuccessful authentication attempt.", "%(num)s unsuccessful authentication attempts.", account.failed_login_count) % { "num" : account.failed_login_count } }}
+
+                                                                                       {% if account.last_failed_authentication %}
+                                                                                               {{ _("Last attempt: %s") % locale.format_date(account.last_failed_authentication) }}
+                                                                                       {% end %}
+                                                                               </li>
+                                                                       {% end %}
+                                                               {% end %}
+                                                       </ul>
+                                               </div>
                                        {% end %}
-                               </li>
-                       {% end %}
-               {% end %}
-       </ul>
+                               </div>
+                       </section>
+               </div>
+       {% end %}
 {% end block %}