fix description and image. New member can be created after log in.

This commit is contained in:
2023-10-27 06:32:06 +00:00
parent a290ba8c9f
commit bde7b72d40
7 changed files with 45 additions and 11 deletions

View File

@@ -78,7 +78,6 @@ class MemberAdmin(admin.ModelAdmin):
"surname", "surname",
), ),
"nickname", "nickname",
"username",
"mailaccount", "mailaccount",
"role", "role",
"description", "description",

View File

@@ -1,5 +1,6 @@
import logging import logging
from django.conf import settings
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.validators import ValidationError, validate_email from django.core.validators import ValidationError, validate_email
from django.db import models from django.db import models
@@ -31,7 +32,7 @@ class Member(models.Model):
nickname = models.CharField("Spitzname", max_length=128) nickname = models.CharField("Spitzname", max_length=128)
# LDAP Username # LDAP Username
username = models.CharField("fet.at Benutzername", max_length=128, blank=True) username = models.CharField(max_length=128)
# fet mail account # fet mail account
mailaccount = models.CharField( mailaccount = models.CharField(
@@ -106,6 +107,38 @@ class Member(models.Model):
def get_model_name(self): def get_model_name(self):
return self._meta.model_name return self._meta.model_name
@property
def image_url(self):
if self.image:
return self.image.url
# return default image
return settings.STATIC_URL + "img/FET-Logo-2014-quadrat.png"
@property
def avatar_url(self):
if self.image:
return self.image["avatar"].url
# return default image
return settings.STATIC_URL + "img/FET-Logo-2014-quadrat.png"
@property
def portrait_url(self):
if self.image:
return self.image["portrait"].url
# return default image
return settings.STATIC_URL + "img/FET-Logo-2014-quadrat.png"
@property
def thumb_url(self):
if self.image:
return self.image["thumb"].url
# return default image
return settings.STATIC_URL + "img/FET-Logo-2014-quadrat.png"
class JobGroup(models.Model): class JobGroup(models.Model):
name = models.CharField(max_length=128) name = models.CharField(max_length=128)

View File

@@ -125,7 +125,7 @@ class PostDetailView(DetailView):
post_author = Member.all_members.filter(username=self.object.author).first() post_author = Member.all_members.filter(username=self.object.author).first()
if post_author: if post_author:
author = post_author author = post_author
author_image = post_author.image["avatar"].url author_image = post_author.avatar_url
related_posts = self.object.tags.similar_objects() related_posts = self.object.tags.similar_objects()
# list of non 'is_hidden' posts for related_posts # list of non 'is_hidden' posts for related_posts

View File

@@ -23,7 +23,7 @@
{% for jm in jobmem.list %} {% for jm in jobmem.list %}
<figure> <figure>
<a href="{{ jm.member.get_absolute_url }}"> <a href="{{ jm.member.get_absolute_url }}">
<img loading="lazy" src="{{ jm.member.image.thumb.url }}" alt="Portraitfoto von {{ jm.member.firstname }}" class="w-36 h-36 bg-white"> <img loading="lazy" src="{{ jm.member.thumb_url }}" alt="Portraitfoto von {{ jm.member.firstname }}" class="w-36 h-36 bg-white">
<figcaption> <figcaption>
<h4 class="member-name">{{ jm.member.firstname }} {{ jm.member.surname }}</h4> <h4 class="member-name">{{ jm.member.firstname }} {{ jm.member.surname }}</h4>
<p class="member-role">{{ jm.get_job_role_display }}</p> <p class="member-role">{{ jm.get_job_role_display }}</p>

View File

@@ -5,7 +5,7 @@
{% block title %}{{ member.firstname }} {{ member.surname }}{% endblock %} {% block title %}{{ member.firstname }} {{ member.surname }}{% endblock %}
{% block extraheader %} {% block extraheader %}
<meta content="{{member.image.url}}" property="og:image"> <meta content="{{ member.image_url }}" property="og:image">
<meta content="{{ member.firstname }}" property="og:profile:first_name"> <meta content="{{ member.firstname }}" property="og:profile:first_name">
<meta content="{{ member.surname }}" property="og:profile:last_name"> <meta content="{{ member.surname }}" property="og:profile:last_name">
<meta content="profile" property="og:type"> <meta content="profile" property="og:type">
@@ -15,16 +15,18 @@
<section class="flex-grow w-full max-w-prose my-8 sm:my-0 text-gray-800 dark:text-gray-300"> <section class="flex-grow w-full max-w-prose my-8 sm:my-0 text-gray-800 dark:text-gray-300">
<!-- Alternativtext auf jede Person anpassen: Name im alt="" dynamisch erzeugen --> <!-- Alternativtext auf jede Person anpassen: Name im alt="" dynamisch erzeugen -->
<div> <div>
<img loading="lazy" src="{{ member.image.portrait.url }}" alt="Portraitfoto von {{ member.firstname }} {{ member.surname }}" class="md:float-left w-36 mr-2 mb-2"> <img loading="lazy" src="{{ member.portrait_url }}" alt="Portraitfoto von {{ member.firstname }} {{ member.surname }}" class="md:float-left w-36 mr-2 mb-2">
<div> <div>
<h2 class="mb-2 text-lg text-gray-900 dark:text-gray-100 text-left">{{ member.firstname }} {{ member.surname }}</h2> <h2 class="mb-2 text-lg text-gray-900 dark:text-gray-100 text-left">{{ member.firstname }} {{ member.surname }}</h2>
<div class="mb-2"> <div class="mb-2">
Spitzname: {{ member.nickname }}<br> Spitzname: {{ member.nickname }}<br>
Mailaccount: {{ member.mailaccount }}<br> Mailaccount: {{ member.mailaccount }}<br>
</div> </div>
{% if member.description %}
<div class="mb-2"> <div class="mb-2">
{{ member.description|softhyphen|safe }} {{ member.description|softhyphen|safe }}
</div> </div>
{% endif %}
</div> </div>
{% if active_jobs or inactive_jobs %} {% if active_jobs or inactive_jobs %}
<div x-data="collapseContent" class="clear-left"> <div x-data="collapseContent" class="clear-left">

View File

@@ -17,7 +17,7 @@
{% for member in members %} {% for member in members %}
<figure> <figure>
<a href="{{ member.get_absolute_url }}"> <a href="{{ member.get_absolute_url }}">
<img loading="lazy" src="{{ member.image.thumb.url }}" alt="Portraitfoto von {{ member.firstname }}" class="w-36 h-36 bg-white"> <img loading="lazy" src="{{ member.thumb_url }}" alt="Portraitfoto von {{ member.firstname }}" class="w-36 h-36 bg-white">
<figcaption> <figcaption>
<h3>{{ member.firstname }} {{ member.surname }}</h3> <h3>{{ member.firstname }} {{ member.surname }}</h3>
</figcaption> </figcaption>

View File

@@ -1,5 +1,5 @@
<a class="flex gap-x-4 group" href="{{ result.get_absolute_url }}"> <a class="flex gap-x-4 group" href="{{ result.get_absolute_url }}">
<div class="flex-none w-20 rounded-full aspect-square bg-center bg-no-repeat bg-cover bg-gray-300 dark:bg-gray-700" style="background-image: url('{{ result.image.url }}')"></div> <div class="flex-none w-20 rounded-full aspect-square bg-center bg-no-repeat bg-cover bg-gray-300 dark:bg-gray-700" style="background-image: url('{{ result.image_url }}')"></div>
<article class="flex-grow-0 self-center"> <article class="flex-grow-0 self-center">
<h2 class="line-clamp-1 hover:underline decoration-1 text-gray-800 dark:text-gray-200 font-medium">{{ result.firstname }} {{ result.surname }}</h2> <h2 class="line-clamp-1 hover:underline decoration-1 text-gray-800 dark:text-gray-200 font-medium">{{ result.firstname }} {{ result.surname }}</h2>
<ul class="text-gray-700 dark:text-gray-300 text-sm sm:text-base"> <ul class="text-gray-700 dark:text-gray-300 text-sm sm:text-base">