Favoritenfunktion fertig

This commit is contained in:
holger.trampe 2020-04-18 13:40:10 +02:00
parent 3783e5de44
commit 60e6808962
8 changed files with 61 additions and 27 deletions

View File

@ -15,14 +15,9 @@ import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
################################################### PROD DEV LOCAL CONFIGURATION ###############################
BASE_URL = "https://dev01.digitale-agentur.com/"
#BASE_URL = "https://digitale-agentur.com/"
#BASE_URL = "http://localhost:8000/"
CRONAPIKEY = "gCddsaz6NOnE9QbXZM5LasdEk122D"
############################################## DEV #####################################
BASE_URL = "https://dev01.digitale-agentur.com/"
CRONAPIKEY = "gCddsaz6NOnE9QbXZM5LasdEk122D"
# MAIL DEV
EMAIL_HOST = 'smtp.strato.de'

View File

@ -73,6 +73,7 @@ class Standards(models.Model):
parent_standard = models.ForeignKey("Standards", related_name='partentedstandard', on_delete=models.PROTECT, blank=True, null=True, default=None)
shared_on = models.DateTimeField(default=timezone.now, blank=True)
favoritfrom = models.ManyToManyField(User, blank=True, related_name="FavoritFrom")
#Counter, wie oft dieser Standard in eine andere Agentur kopiert wird

View File

@ -33,9 +33,6 @@
</tbody>
</table>
</div>
</p>
</div>
</div>
@ -56,7 +53,7 @@
<p class="card-text">
{% for s in allagencynetworkstandards %}
{% if forloop.counter < 10 %}
<a href="{% url 'standard-single-agn' s.pk %}">{{s.name|truncatechars:30}}</a>&nbsp;({{s.agencynetworkcounter}})<br/>
<a href="{% url 'standard-single-agn' s.pk s.pk %}">{{s.name|truncatechars:30}}</a>&nbsp;({{s.agencynetworkcounter}})<br/>
{% endif %}
{% endfor %}
</p>

View File

@ -41,15 +41,15 @@
{% getbool as groupchecker %}
{% if groupchecker %}
<a href="{% url 'standard-single-agn' standard.pk %}">{{standard.name|truncatechars:28}}</a>
<a href="{% url 'standard-single-agn' standard.pk agn.pk %}">{{standard.name|truncatechars:28}}</a>
{% else %}
<p class="card-text text-secondary" data-toggle="popover" data-placement="top" data-trigger="hover" title="Zugriffsbeschränkung" data-content="Zugriff beschränkt auf {% for sgroup in standard.visibleby.all %}{{sgroup.agencygroupname}}{% if forloop.counter < standard.visibleby.all|length %},{%endif%}{% endfor %}"><i class="fas fa-lock"></i>&nbsp;{{standard.name|truncatechars:28}}</p>
{% endif %}
</td>
<td>{{standard.agency.name}} <i style="float: right; color: #000000;" class="fas fa-info-circle" onclick="javascript:$('#showAgencyInfo_{{standard.agency.pk}}').modal('toggle');"></i></td>
<td>{{standard.agency.name}} <i style="float: right;" class="fas fa-info-circle" onclick="javascript:$('#showAgencyInfo_{{standard.agency.pk}}').modal('toggle');"></i></td>
<td>{{standard.last_modified_on|date:"d.m.Y, H:i"}}</td>
<td>{{standard.agencynetworkcounter}}</td>
<td>{% if isshared %}Übernommen{% endif %}</td>
<td>{% if isshared %}Übernommen {% elif request.user in standard.favoritfrom.all %}Favorit {% endif %}</td>
</tr>
{% endif %}
{% endfor %}

View File

@ -6,15 +6,20 @@
{% checkifsharedstandardinagency request.user.profile.agency standard as isshared %}
{% if isshared == False and standard.agency != request.user.profile.agency %}
<span style="float: right">
<a style="float: right" href="{% url 'standard-agn' agnpk %}" type="button" class="btn btn-secondary ml-2" data-toggle="tooltip" data-placement="top" title="Zurück zu Verbundstandards."><i class="fas fa-chevron-circle-left"></i></a>
<button style="float: right" id="favoritbutton" class="btn {% if request.user in standard.favoritfrom.all %}btn-primary {% else %} btn-secondary {% endif %} ml-2" onclick="javascript:markFavorit({{standard.pk}}, {{request.user.pk}})" data-toggle="tooltip" data-placement="top" title="Markieren Sie diesen Standard als Favoriten."><!--<small><i class="fas fa-file-import" ></i></small>--><i class="fas fa-star"></i></button>
<button style="float: right" class="btn btn-primary ml-2" onclick="javascript:askForCopy()" data-toggle="tooltip" data-placement="top" title="Übernehmen Sie diesen Standard in Ihre Agentur."><!--<small><i class="fas fa-file-import" ></i></small>-->Standard in meine Agentur übernehmen</button>
</span>
{% elif standard.agency == request.user.profile.agency %}
<span style="float: right; padding-top:16px; font-size: 16pt;">
<span style="float: right; font-size: 16pt;">
<small>Standard ist aus ihrer Agentur</small>
<a style="float: right" href="{% url 'standard-agn' agnpk %}" type="button" class="btn btn-secondary btn-sm ml-2" data-toggle="tooltip" data-placement="top" title="Zurück zu Verbundstandards."><i class="fas fa-chevron-circle-left"></i></a>
</span>
{% else %}
<span style="float: right; padding-top:16px; font-size: 16pt;">
<span style="float: right;font-size: 16pt;">
<small>Standard übernommen</small>
<a style="float: right" href="{% url 'standard-agn' agnpk %}" type="button" class="btn btn-secondary btn-sm ml-2" data-toggle="tooltip" data-placement="top" title="Zurück zu Verbundstandards."><i class="fas fa-chevron-circle-left"></i></a>
</span>
{% endif %}
</h2>
@ -230,6 +235,25 @@
});
}
function markFavorit(){
$.ajax({
url: "{% url 'update_standard_by_ajax_agn' standard.pk %}",
data: {
action : 'markingfavorit',
},
success: function (data) {
if(data["added"]){
$("#favoritbutton").removeClass("btn-secondary");
$("#favoritbutton").addClass("btn-primary");
}
else{
$("#favoritbutton").removeClass("btn-primary");
$("#favoritbutton").addClass("btn-secondary");
}
}
});
}
</script>
{% endblock content %}

View File

@ -17,7 +17,7 @@ urlpatterns = [
path('standards/<int:pk>/delete', StandardDeleteView.as_view(), name='standard-delete'),
path('standard/<int:pk>/changestat', views.StandardChangePublic, name="standard-status"),
path('standard/<int:pk>/single', views.StandardSingle, name="standard-single"),
path('standard/<int:pk>/singleagn', views.StandardSingleAgn, name="standard-single-agn"),
path('standard/<int:pk>/<int:agnpk>/singleagn', views.StandardSingleAgn, name="standard-single-agn"),
path('standard/<int:pk>/area', views.StandardArea, name="standard-area"),
path('standard/<int:pk>/task', views.StandardTask, name="standard-task"),
path('standardsagn/<int:pk>', views.StandardFromAgn, name="standard-agn"),

View File

@ -515,6 +515,7 @@ def updatesbyajax(request, pk):
@login_required
def StandardFromAgn(request, pk):
try:
agn = AgencyNetwork.objects.get(pk=pk)
context = {
'active_link':'standards',
@ -522,13 +523,19 @@ def StandardFromAgn(request, pk):
'agn' :agn,
}
return render(request, 'standards/standards_from_agn.html', context)
except:
context = {
'active_link':'standards',
}
return redirect('standards')
# View for SingleStandard from AgencyNetwork
@login_required
def StandardSingleAgn(request, pk):
def StandardSingleAgn(request, pk, agnpk):
context = {
'active_link':'standards',
'agnpk' : agnpk,
'standard' : Standards.objects.get(pk=pk),
'comments' : StandardComments.objects.filter(standard=Standards.objects.get(pk=pk)).order_by("-last_modified_on")
}
@ -566,6 +573,16 @@ def updatesbyajax_agn(request, pk):
counter_down = len(StandardCommentRate.objects.filter(oncomment=comment, rate_stats=0))
return JsonResponse({"up" : counter_up, "down" : counter_down})
elif(request.GET["action"] == "markingfavorit"):
workingstandard = Standards.objects.get(pk=pk)
added = False
if workingstandard.public:
if(request.user in workingstandard.favoritfrom.all()):
workingstandard.favoritfrom.remove(request.user)
else:
workingstandard.favoritfrom.add(request.user)
added = True
return JsonResponse({"added" : added})