Settings Agenturfunktionen vollständig implementiert, Bugs gefixed

This commit is contained in:
holger.trampe 2020-02-06 21:50:16 +01:00
parent 06a1428ce9
commit 04cc3802f5
13 changed files with 67 additions and 57 deletions

View File

@ -121,7 +121,7 @@ CKEDITOR_CONFIGS = {
}
# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
'''
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
@ -131,6 +131,16 @@ DATABASES = {
'PORT' : 3306
}
}
'''
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME' : 'digitaleagentur',
'USER' : 'root',
'PASSWORD' : '',
'PORT' : 3306
}
}
# Password validation
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators

View File

@ -23,6 +23,8 @@ def picturepath_user(instance, filename):
# file will be uploaded to MEDIA_ROOT/agency_<id>/<subdirs>/<filename>
return 'agency_{0}/agencystats/profilepics/{1}'.format(instance.pk, filename)
'''
Class Agency
@ -47,8 +49,8 @@ class Agency(models.Model):
return f'{self.name}'
# Hier wird definiert, welche Parameter in der URL übertragen werden inkl. Bezeichner
def get_absolute_url(self):
return reverse('agency-update', kwargs={'pk':self.pk})
#def get_absolute_url(self):
# return reverse('agency-update', kwargs={'pk':self.pk})
@property
def get_photo_url(self):
@ -57,6 +59,17 @@ class Agency(models.Model):
else:
return "/media/agencymain/default.jpg"
'''
Class AgencyJob
'''
class AgencyJob(models.Model):
name = models.CharField(default="", max_length=80)
agency = models.ForeignKey(Agency, on_delete=models.PROTECT)
def __str__(self):
return f'{self.name}'
'''
Class Profile
@ -76,25 +89,15 @@ Klasse für die Zusatzinfos eines Nutzers.
- Aufgaben
'''
class Profile(models.Model):
# AGENCY TASKS
agency_task = [
("", ""),
("lead", "Agenturleitung"),
("external", "Außendienst"),
("indoor", "Innendienst"),
("trainee", "Azubi"),
]
# Wenn der User gelöscht wird, wird auch das Profil gelöscht
user = models.OneToOneField(User, on_delete=models.CASCADE)
parent = models.ForeignKey(User, on_delete=models.PROTECT, blank=True, null=True, related_name='parent_user')
phoneland = models.CharField(max_length=60, blank=True)
phonemobile = models.CharField(max_length=60, blank=True)
func = models.CharField(choices=agency_task, default="", max_length=50)
# Wenn die Funktion gelöscht wird, wird die FUNC auf NULL gesetzt
func = models.ForeignKey(AgencyJob, blank=True, null=True, on_delete=models.SET_NULL)
# Wenn dieses Profil gelöscht wird, wird NICHT die Agency geslöscht
agency = models.ForeignKey(Agency, on_delete=models.PROTECT)
image = models.ImageField(default='userprofilepics/default.jpg', upload_to=picturepath_user, blank=True)

View File

@ -52,7 +52,9 @@ html h1 {
}
body{
background-color: #f8f9fc;
padding-top: 70px;
}
.modal-open {overflow-y: auto}
.preview {
overflow: hidden;
@ -65,10 +67,6 @@ body{
margin-bottom: 20px;
}
body {
padding-top: 70px;
}
.default_content_style {
margin-left: 212px !important;
}

View File

@ -1,31 +0,0 @@
{% extends "users/base.html" %}
{% block content %}
<div class="content-section col-12">
<h3>Agentur <b>{{ request.user.profile.agency.name }}</b></h3>
<hr>
<div class="col-md-6">
<h6><b>Inhaber</b></h6>
<p>
{{ request.user.profile.agency.inhaber }}
</p>
<h6><b>Adresse</b></h6>
<p>
{{ request.user.profile.agency.street }}
</p>
<p>
{{ request.user.profile.agency.plz }} {{ request.user.profile.agency.city }}
</p>
<h6><b>Kontaktdaten</b></h6>
<p>
{{ request.user.profile.agency.agency_email }}
</p>
<p>
{{ request.user.profile.agency.phone }}
</p>
<h6><b>Agenturbild</b></h6>
<p>
<img class="img-profile" width="75%" src="{{ request.user.profile.agency.get_photo_url }}">
</p>
</div>
</div>
{% endblock content %}

View File

@ -56,7 +56,7 @@
<!-- Sidebar - Brand -->
<a class="sidebar-brand d-flex align-items-center justify-content-center" href="{% url 'users-dashboard' %}">
<i class="fas fa-laptop"></i>
<div class="sidebar-brand-text mx-3">Digitale Agentur</div>
<div class="sidebar-brand-text mx-2" style="">Digitale Agentur</div>
</a>
<!-- Divider -->
@ -102,18 +102,18 @@
<span>Organigramm</span>
</a>
</li>
<!--
{% if active_link == 'agencyinfo' %}
<li class="nav-item active">
{% else%}
<li class="nav-item">
{%endif%}
<a class="nav-link " href="{% url 'agencyinfo' %}" aria-expanded="true">
<a class="nav-link " href="#" aria-expanded="true">
<i class="fas fa-fw fa-info"></i>
<span>Agentur</span>
</a>
</li>
-->
{% if active_link == 'quicklinks' %}
<li class="nav-item active">
{% else%}

View File

@ -23,8 +23,8 @@ urlpatterns = [
#path('usersman/<int:pk>/', permission_required('users.users_usermanagement')(ProfileUpdateView.as_view()), name='users-update'),
path('usersman/<int:pk>/perms', permission_required('users.users_usermanagement')(UsersPermUpdateView.as_view()), name='users-perm-update'),
path('usersman/<int:pk>/delete', permission_required('users.users_usermanagement')(ProfileDeleteView.as_view()), name='users-delete'),
path('agencyinfo/', views.agency, name='agencyinfo'),
path('agencyinfo/<int:pk>/', permission_required('users.agency_change')(AgencyUpdateView.as_view()), name='agency-manage'),
#path('agencyinfo/', views.agency, name='agencyinfo'),
#path('agencyinfo/<int:pk>/', permission_required('users.agency_change')(AgencyUpdateView.as_view()), name='agency-manage'),
path('usersman/<int:pk>/prio', views.UsersPrio, name='users-prio'),
#path('prioupdate/', views.UsersPrioUpdate, name="users-prioupdate"),
path('areataskupdate/<int:pk>/', views.UsersAreaTaskUpdate, name="users-areataskupdate"),

View File

@ -80,7 +80,7 @@ class AgencyUpdateForm(forms.ModelForm):
"phone" : "Telefon",
"agencypic" : "Agenturbild"
}
fields = ['name','inhaber','street', 'plz', 'city', 'agency_email', 'phone', 'agencypic', 'x', 'y', 'width', 'height', 'rotation']
fields = ['name','inhaber','agency_email', 'phone', 'street', 'plz', 'city', 'agencypic', 'x', 'y', 'width', 'height', 'rotation']
def save(self):
photo = super(AgencyUpdateForm, self).save()

View File

@ -25,6 +25,28 @@ from django.template.loader import render_to_string
from django.contrib.auth.forms import PasswordResetForm
from django.template.loader import render_to_string
from io import StringIO
from users.models import AgencyJob
@login_required
def toUpdate(request):
# NO AGENVYJOBS
# CREATE DEFAULT
'''
Agenturleiter
Außendienst
Innendienst
Auszubildender
'''
agencyjobsobject = AgencyJob.objects.filter(agency__pk=request.user.profile.agency.pk)
if(len(agencyjobsobject) == 0):
defaultAgencyJobs = ['Agenturleiter', 'Außendienst', 'Innendienst', 'Auszubildender']
for ele in defaultAgencyJobs:
tempAgencyJob = AgencyJob(name=ele, agency=request.user.profile.agency)
tempAgencyJob.save()
'''
DASHBOARD-View
@ -61,9 +83,17 @@ class AgencyCreateView(CreateView):
)
return super().form_valid(form)
@login_required
def dashboard(request):
# UPDATE FUNCTIONS BY NEW MODEL-CHANGES FOR COPIEN SOME DATA
toUpdate(request)
context = {
'active_link' : 'dashboard'
}