Changeset 19

Show
Ignore:
Timestamp:
01/05/07 21:22:20 (4 years ago)
Author:
nicolast
Message:

Initial support of MicroFormats? in user page

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/djangoid/templates/users/userpage.html

    r17 r19  
    77        </head> 
    88        <body> 
    9                 <h1>User page of {{ user.djangouser }}</h1> 
     9                <h1>User page of {{ user.get_name }}</h1> 
     10                <h2>About {{ user.get_name }}</h2> 
     11                <div class="vcard"> 
     12                        {% if user.attributes.FIRST_NAME %} 
     13                        <div>Name: <span class="fn"><span class="given-name">{{ user.attributes.FIRST_NAME }}</span>{% if user.attributes.LAST_NAME %} <span class="family-name">{{ user.attributes.LAST_NAME }}</span>{% endif %}</span></div> 
     14                        {% endif %} 
     15                        {% if user.attributes.HOMEPAGE_URI %} 
     16                        <div>Homepage: <a class="url" href="{{ user.attributes.HOMEPAGE_URI }}">{{ user.attributes.HOMEPAGE_URI }}</a></div> 
     17                        {% endif %} 
     18                        {% if user.attributes.EMAIL %} 
     19                        <div>Email: <a class="email" href="mailto:{{ user.attributes.EMAIL }}">{{ user.attributes.EMAIL }}</a></div> 
     20                        {% endif %} 
     21                        {% if user.attributes.IM_JID %} 
     22                        <div>Jabber: <a class="url jid" href="xmpp:{{ user.attributes.IM_JID }}">{{ user.attributes.IM_JID }}</a></div> 
     23                        {% endif %} 
     24                        {% if user.attributes.NICKNAME %} 
     25                        <div>Nick: <span class="nickname">{{ user.attributes.NICKNAME }}</span></div> 
     26                        {% endif %} 
     27                        {% if user.attributes.DATE_OF_BIRTH %} 
     28                        <div>Date of birth: <abbr class="bday" title="{{ user.attributes.DATE_OF_BIRTH }}">{{ user.attributes.DATE_OF_BIRTH }}</abbr></div> 
     29                        {% endif %} 
     30                </div> 
    1031                <h2>Claimed URIs</h2> 
    1132                <table> 
     
    2142                                {% for uri in user.claimeduri_set.all %} 
    2243                                <tr> 
    23                                         <td><a href="{{ uri.uri }}">{{ uri.uri }}</a></td> 
     44                                        <td><a href="{{ uri.uri }}" rel="me">{{ uri.uri }}</a></td> 
    2445                                        <td>{{ uri.is_valid }}</td> 
    2546                                        <td>{{ uri.last_checked }}</td> 
    26                                         <td>{{ uri.get_microid }}</td> 
     47                                        <td>{{ uri.get_microids }}</td> 
    2748                                </tr> 
    2849                                {% endfor %} 
  • trunk/djangoid/users/models.py

    r18 r19  
    6464                return settings.BASE_URL[:-1] + urlreverse("djangoid.users.views.useryadis", kwargs = {"uid": self.djangouser}) 
    6565 
     66        def get_name(self): 
     67                f = None 
     68                l = None 
     69                try: 
     70                        f = UserAttribute.objects.get(user = self, attribute__name__exact = "FIRST_NAME", public = True).value 
     71                except: 
     72                        pass 
     73                try: 
     74                        l = UserAttribute.objects.get(user = self, attribute__name__exact = "LAST_NAME", public = True).value 
     75                except: 
     76                        pass 
     77 
     78                if l is None and f is None: 
     79                        return self.djangouser 
     80                else: 
     81                        if l is None: 
     82                                return f 
     83                        if f is None: 
     84                                return l 
     85                        return f + " " + l 
     86 
    6687        class Admin: 
    6788                pass 
     
    6990#Identities can have attributes. These items represent one possible attribute. 
    7091class IdentityAttribute(models.Model): 
    71         name = models.CharField("Name", maxlength = 128, help_text = "Name of the attribute. In \"openid.sreg.nickname\" this is \"nickname\""
     92        name = models.CharField("Name", maxlength = 128, help_text = "Internal name of the attribute.", primary_key = True
    7293        title = models.CharField("Title", maxlength = 128, help_text = "Title of the attribute, as displayed to the user") 
    73         namespace = models.CharField("Namespace", maxlength = 32, help_text = "Namespace of the attribute. In \"openid.sreg.nickname\" this is \"sreg\"") 
    7494        description = models.TextField("Description", blank = True, help_text = "Longer description of the attribute, as displayed to the user") 
    7595        regex = models.CharField("Validation regex", maxlength = 128, blank = True, help_text = "Regex the value of this field is validated upon on updates") 
    7696 
    7797        def __str__(self): 
    78                 return self.namespace + "." + self.nam
     98                return self.titl
    7999 
    80100        class Admin: 
    81101                pass 
    82  
    83         class Meta: 
    84                 unique_together = (("name", "namespace"),) 
    85102 
    86103#This maps an attribute to a user, including a value, obviously 
  • trunk/djangoid/users/views.py

    r17 r19  
    2323 
    2424from djangoid.server.views import getDjangoidUserFromIdentity 
    25 from djangoid.users.models import TrustedRoot, DjangoidUser 
     25from djangoid.users.models import TrustedRoot, DjangoidUser, UserAttribute 
    2626from djangoid.openidhandlers import convertToOpenIDRequest, checkYadisRequest, convertToHttpResponse 
    2727from djangoid.microidutils import microid 
     
    3939 
    4040        user = DjangoidUser.objects.get(djangouser = uid) 
     41        user.attributes = {} 
     42        for a in UserAttribute.objects.filter(user = user, public = True): 
     43                user.attributes[a.attribute.name] = a.value 
    4144        mid = microid(user.get_user_page(), user.get_user_page()) 
    4245        res = render_to_response("users/userpage.html", {"server_url": settings.BASE_URL[:-1] + urlreverse("djangoid.server.views.endpoint"), "user": user, "microid": mid})