csrf
This commit is contained in:
parent
7a56d56c30
commit
53c4830051
|
|
@ -69,7 +69,16 @@
|
|||
<div style="float: left;" class="col-12 ">
|
||||
<div class='icon-container mr-2'>
|
||||
<img class="img-profile roundimg" src="{{ user.profile.get_photo_url }}">
|
||||
<div class='status-circle' id="userstatus_circle_{{user.pk}}" style="background-color: {% if user in onlineusers %} green {% else %} grey {% endif %};">
|
||||
<div class='status-circle' id="userstatus_circle_{{user.pk}}" style="background-color: {% if user in onlineusers %}
|
||||
{% if user.profile.onlinestatus == 0 %}
|
||||
green
|
||||
{% elif user.profile.onlinestatus == 1 %}
|
||||
red
|
||||
{% elif user.profile.onlinestatus == 2 %}
|
||||
orange
|
||||
{% elif user.profile.onlinestatus == 3 %}
|
||||
grey
|
||||
{% else %} grey {% endif %};">
|
||||
</div>
|
||||
</div>
|
||||
<h5 class="mt-3">{{user.first_name}} {{user.last_name}}</h5>
|
||||
|
|
@ -130,6 +139,8 @@
|
|||
console.log(data);
|
||||
$( ".status-circle" ).each(function( index ) {
|
||||
if(data["onlineusers"].indexOf($(this)[0]["id"].split("_")[2]) !== -1){
|
||||
|
||||
console.log(data["onlineusers"][index+1]);
|
||||
$("#" + $(this)[0]["id"]).css("background-color", "green");
|
||||
}
|
||||
else{
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ def getloggedusersdata(request):
|
|||
for u in users_agency:
|
||||
if(u in users_online):
|
||||
user_online_final.append("" + str(u.pk))
|
||||
user_online_final.append("" + str(u.pk) + "_" + u.profile.onlinestatus)
|
||||
|
||||
return JsonResponse({"onlineusers" : user_online_final})
|
||||
else:
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -439,4 +439,19 @@ def getsomeyears(start):
|
|||
|
||||
@register.simple_tag
|
||||
def getsomemonths():
|
||||
return ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
|
||||
return ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
|
||||
|
||||
@register.simple_tag
|
||||
def getonlinestatuscolor(user):
|
||||
maincolor = "red"
|
||||
|
||||
if(user.profile.onlinestatus == 0):
|
||||
maincolor = "green"
|
||||
elif(user.profile.onlinestatus == 1):
|
||||
maincolor = "red"
|
||||
elif(user.profile.onlinestatus == 2):
|
||||
maincolor = "orange"
|
||||
elif(user.profile.onlinestatus == 3):
|
||||
maincolor = "grey"
|
||||
|
||||
return maincolor
|
||||
|
|
@ -212,6 +212,17 @@ class Profile(models.Model):
|
|||
user_messages_mail = models.BooleanField(default=True)
|
||||
user_messages_push = models.BooleanField(default=True)
|
||||
|
||||
# ONLINESTATUS
|
||||
'''
|
||||
|
||||
0 = ONLINE - green
|
||||
1 = BESCHAFTIGT - red
|
||||
2 = ABWESEND - orange
|
||||
3 = OFFLINE - grey
|
||||
|
||||
'''
|
||||
onlinestatus = models.IntegerField(default=0)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.user.last_name}'
|
||||
|
||||
|
|
|
|||
|
|
@ -54,9 +54,10 @@ def loadingFreeDays(plz):
|
|||
# CHECK SOMETHING WHEN USER LOGGED IN
|
||||
@receiver(signal=user_logged_in, sender=User)
|
||||
def checkForWorkDays(sender, user, request, **kwargs):
|
||||
user.profile.onlinestatus = 0
|
||||
user.save()
|
||||
today = date.today()
|
||||
wd = Workday.objects.filter(user=user, end=None, start__day__lte=today.day)
|
||||
|
||||
for d in wd:
|
||||
d.end = datetime.datetime(d.start.year, d.start.month, d.start.day, 23, 59, 00)
|
||||
d.save()
|
||||
|
|
|
|||
|
|
@ -332,11 +332,13 @@
|
|||
</div>
|
||||
</li>
|
||||
<style type="text/css">
|
||||
.roundimg {
|
||||
{% getonlinestatuscolor request.user as onlinecolor %}
|
||||
|
||||
.roundimg_base {
|
||||
border-radius: 50%;
|
||||
-webkit-box-shadow: 0px 0px 4px 5px red;
|
||||
-moz-box-shadow: 0px 0px 4px 5px red;
|
||||
box-shadow: 0px 0px 4px 5px red;
|
||||
-webkit-box-shadow: 0px 0px 4px 5px {{onlinecolor}};
|
||||
-moz-box-shadow: 0px 0px 4px 5px {{onlinecolor}};
|
||||
box-shadow: 0px 0px 4px 5px {{onlinecolor}};
|
||||
}
|
||||
</style>
|
||||
<div class="topbar-divider d-none d-sm-block"></div>
|
||||
|
|
@ -344,10 +346,29 @@
|
|||
<li class="nav-item dropdown no-arrow">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="mr-2 d-none d-lg-inline text-gray-600 small">{{request.user.first_name}} {{request.user.last_name}}</span>
|
||||
<img class="img-profile roundimg ml-2" src="{{ user.profile.get_photo_url }}">
|
||||
<img id="userbaseprofilepicture" class="img-profile roundimg_base ml-2" src="{{ user.profile.get_photo_url }}">
|
||||
</a>
|
||||
<!-- Dropdown - User Information -->
|
||||
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="userDropdown">
|
||||
<a class="dropdown-item" onclick="javascript:changeOnlineStatus(0)" href="#/">
|
||||
<i class="fas fa-circle mr-2" style="color: green"></i>
|
||||
Online
|
||||
</a>
|
||||
<a class="dropdown-item" onclick="javascript:changeOnlineStatus(1)" href="#/">
|
||||
<i class="fas fa-circle mr-2" style="color: red"></i>
|
||||
Beschäftigt
|
||||
</a>
|
||||
<a class="dropdown-item" onclick="javascript:changeOnlineStatus(2)" href="#/">
|
||||
<i class="fas fa-circle mr-2" style="color: yellow"></i>
|
||||
Abwesend
|
||||
</a>
|
||||
<a class="dropdown-item" onclick="javascript:changeOnlineStatus(3)" href="#/">
|
||||
<i class="fas fa-circle mr-2" style="color: grey"></i>
|
||||
Offline anzeigen
|
||||
</a>
|
||||
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
<!--<a class="dropdown-item" onclick="userGoToSettings({{user.pk}})" href="{% url 'orga-single' user.pk %}">-->
|
||||
<a class="dropdown-item" onclick="userGoToSettings()" href="#/">
|
||||
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
|
||||
|
|
@ -653,6 +674,50 @@ $(document).on('click', function (e) {
|
|||
|
||||
<!-- WEBSOCKETS -->
|
||||
<script type="text/javascript">
|
||||
function changeOnlineStatus(newstat){
|
||||
$.ajax(
|
||||
{
|
||||
type: "GET",
|
||||
url: "{% url 'users-updateonlinestat' %}",
|
||||
data : {
|
||||
newstat : newstat
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
if(data["newstat"] == "0"){
|
||||
$("#userbaseprofilepicture").css({
|
||||
'-webkit-box-shadow' : '0px 0px 4px 5px green',
|
||||
'-moz-box-shadow': '0px 0px 4px 5px green',
|
||||
'box-shadow': '0px 0px 4px 5px green'
|
||||
})
|
||||
}
|
||||
else if(data["newstat"] == "1"){
|
||||
$("#userbaseprofilepicture").css({
|
||||
'-webkit-box-shadow' : '0px 0px 4px 5px red',
|
||||
'-moz-box-shadow': '0px 0px 4px 5px red',
|
||||
'box-shadow': '0px 0px 4px 5px red'
|
||||
})
|
||||
}
|
||||
else if(data["newstat"] == "2"){
|
||||
$("#userbaseprofilepicture").css({
|
||||
'-webkit-box-shadow' : '0px 0px 4px 5px orange',
|
||||
'-moz-box-shadow': '0px 0px 4px 5px orange',
|
||||
'box-shadow': '0px 0px 4px 5px orange'
|
||||
})
|
||||
}
|
||||
else if(data["newstat"] == "3"){
|
||||
$("#userbaseprofilepicture").css({
|
||||
'-webkit-box-shadow' : '0px 0px 4px 5px grey',
|
||||
'-moz-box-shadow': '0px 0px 4px 5px grey',
|
||||
'box-shadow': '0px 0px 4px 5px grey'
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
$("#chat_alluserscontent").hide();
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ urlpatterns = [
|
|||
path('impressum/', views.impressum, name="impressumda"),
|
||||
path('setuserparent/', views.setuserparent, name="users-setuserparent"),
|
||||
path('sendpassmail/', views.sendpassmail, name="users-sendpassmail"),
|
||||
path('changeonlinestat/', views.changeonlinestat, name="users-updateonlinestat"),
|
||||
path('dacron/<slug:code>', views.cronactions, name="cronmain")
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -471,6 +471,13 @@ def setuserparent(request):
|
|||
else:
|
||||
return HttpResponse("Request method is not a GET")
|
||||
|
||||
@login_required
|
||||
def changeonlinestat(request):
|
||||
if request.method == 'GET':
|
||||
request.user.profile.onlinestatus = request.GET["newstat"]
|
||||
request.user.save()
|
||||
return JsonResponse({"newstat" : request.GET["newstat"]})
|
||||
|
||||
'''
|
||||
|
||||
# DELETE A USER
|
||||
|
|
|
|||
Loading…
Reference in New Issue