Bugs div. und Contact erweitert

This commit is contained in:
holger.trampe 2021-03-26 10:44:30 +01:00
parent 41d32d7afe
commit c57b8bb9df
7 changed files with 34 additions and 25 deletions

View File

@ -32,6 +32,7 @@ class OrganizerAddContact(forms.ModelForm):
model = AGContacts model = AGContacts
labels = { labels = {
'personname' : "Ansprechpartner", 'personname' : "Ansprechpartner",
'function' : "Funktion",
'name' : "Organisation", 'name' : "Organisation",
'mail' : "E-Mailadresse", 'mail' : "E-Mailadresse",
'phone1' : "Telefon 1", 'phone1' : "Telefon 1",
@ -43,12 +44,13 @@ class OrganizerAddContact(forms.ModelForm):
'desc' : "Anmerkungen" 'desc' : "Anmerkungen"
} }
fields = ['name', 'personname', 'mail', 'phone1', 'phone2', 'street', 'plz', 'city', "category", 'desc'] fields = ['name', 'personname', 'function', 'mail', 'phone1', 'phone2', 'street', 'plz', 'city', "category", 'desc']
def __init__(self, user, *args, **kwargs): def __init__(self, user, *args, **kwargs):
super(OrganizerAddContact, self).__init__(*args, **kwargs) super(OrganizerAddContact, self).__init__(*args, **kwargs)
self.fields['name'].required = False self.fields['name'].required = False
self.fields['function'].required = False
self.fields['personname'].required = False self.fields['personname'].required = False
self.fields['mail'].required = False self.fields['mail'].required = False
self.fields['phone1'].required = False self.fields['phone1'].required = False
@ -65,6 +67,7 @@ class OrganizerUpdateContact(forms.ModelForm):
model = AGContacts model = AGContacts
labels = { labels = {
'personname' : "Ansprechpartner", 'personname' : "Ansprechpartner",
'function' : "Funktion",
'name' : "Organisation", 'name' : "Organisation",
'mail' : "E-Mailadresse", 'mail' : "E-Mailadresse",
'phone1' : "Telefon 1", 'phone1' : "Telefon 1",
@ -76,12 +79,13 @@ class OrganizerUpdateContact(forms.ModelForm):
'desc' : "Anmerkungen" 'desc' : "Anmerkungen"
} }
fields = ['name', 'personname', 'mail', 'phone1', 'phone2', 'street', 'plz', 'city', "category", 'desc'] fields = ['name', 'personname', 'function', 'mail', 'phone1', 'phone2', 'street', 'plz', 'city', "category", 'desc']
def __init__(self, user, *args, **kwargs): def __init__(self, user, *args, **kwargs):
super(OrganizerUpdateContact, self).__init__(*args, **kwargs) super(OrganizerUpdateContact, self).__init__(*args, **kwargs)
self.fields['name'].required = False self.fields['name'].required = False
self.fields['function'].required = False
self.fields['personname'].required = False self.fields['personname'].required = False
self.fields['mail'].required = False self.fields['mail'].required = False
self.fields['phone1'].required = False self.fields['phone1'].required = False

View File

@ -46,6 +46,7 @@ class AGContactsCagetory(models.Model):
class AGContacts(models.Model): class AGContacts(models.Model):
agency = models.ForeignKey(Agency, on_delete=models.CASCADE) agency = models.ForeignKey(Agency, on_delete=models.CASCADE)
personname = models.CharField(default="", max_length=200, blank=False) personname = models.CharField(default="", max_length=200, blank=False)
function = models.CharField(default="", max_length=200, blank=False)
name = models.CharField(default="", max_length=200, blank=False) name = models.CharField(default="", max_length=200, blank=False)
mail = models.CharField(default="", max_length=200, blank=False) mail = models.CharField(default="", max_length=200, blank=False)
phone1 = models.CharField(default="", max_length=200, blank=False) phone1 = models.CharField(default="", max_length=200, blank=False)
@ -54,6 +55,7 @@ class AGContacts(models.Model):
city = models.CharField(default="", max_length=200, blank=True) city = models.CharField(default="", max_length=200, blank=True)
plz = models.CharField(default="", max_length=5, blank=True) plz = models.CharField(default="", max_length=5, blank=True)
desc = models.TextField(max_length=3000, blank=True) desc = models.TextField(max_length=3000, blank=True)
category = models.ForeignKey("AGContactsCagetory", default=None, on_delete=models.SET_DEFAULT, null=True, blank=True) category = models.ForeignKey("AGContactsCagetory", default=None, on_delete=models.SET_DEFAULT, null=True, blank=True)
def __str__(self): def __str__(self):

View File

@ -14,6 +14,7 @@
<thead> <thead>
<tr> <tr>
<th scope="col">Firma</th> <th scope="col">Firma</th>
<th scope="col">Ansprechpartner</th>
<th scope="col">E-Mail</th> <th scope="col">E-Mail</th>
<th scope="col">Telefon</th> <th scope="col">Telefon</th>
<th scope="col">Kategorie</th> <th scope="col">Kategorie</th>
@ -28,11 +29,15 @@
<td> <td>
<a href="#" onclick="javascript:$('#infos_{{agc.pk}}').modal('toggle');">{{agc.name}}</a> <a href="#" onclick="javascript:$('#infos_{{agc.pk}}').modal('toggle');">{{agc.name}}</a>
</td> </td>
<td>
{{agc.personname}}
</td>
<td> <td>
{% if agc.mail|length > 0 %} {% if agc.mail|length > 0 %}
<a href="mailto:{{agc.mail}}">{{agc.mail}}</a><br/> <a href="mailto:{{agc.mail}}">{{agc.mail}}</a><br/>
{% endif %} {% endif %}
</td> </td>
<td> <td>
{% if agc.phone1|length > 0 %} {% if agc.phone1|length > 0 %}
<a href="tel::{{agc.phone1}}">{{agc.phone1}}</a> <a href="tel::{{agc.phone1}}">{{agc.phone1}}</a>
@ -75,8 +80,9 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
{% if agc.personname|length > 0 %} {% if agc.personname|length > 0 %}
Ansprechpartner: {{agc.personname}}<br/> Ansprechpartner: {{agc.personname}} <br/>
{% endif %} {% endif %}
{% if agc.function|length > 0 %}Funktion: {{agc.function}}<br /> {% endif %}
{% if agc.mail|length > 0 %} {% if agc.mail|length > 0 %}
E-Mailadresse: <a href="mailto:{{agc.mail}}">{{agc.mail}}</a><br /> E-Mailadresse: <a href="mailto:{{agc.mail}}">{{agc.mail}}</a><br />
{% endif %} {% endif %}

View File

@ -468,7 +468,7 @@ def TimeAdd(request, team=0, pk=0):
#end = datetime.datetime(int(workday.end.year), int(workday.end.month), int(workday.end.day), int(((str(form["end"].value()).split(":"))[0])), int(((str(form["end"].value()).split(":"))[1]))) #end = datetime.datetime(int(workday.end.year), int(workday.end.month), int(workday.end.day), int(((str(form["end"].value()).split(":"))[0])), int(((str(form["end"].value()).split(":"))[1])))
workday = Workday(start=form.cleaned_data["start"], end=form.cleaned_data["end"], target=form.cleaned_data["target"], user=user, freefield=form.cleaned_data["freefield"], agency=request.user.profile.agency) workday = Workday(start=form.cleaned_data["start"], end=form.cleaned_data["end"], target=form.cleaned_data["target"], user=user, freefield=form.cleaned_data["freefield"], agency=request.user.profile.agency, lastManualChangeUser=user, lastManualChangeDate=date.today())
if workday.start.day != workday.end.day or workday.start.month != workday.end.month or workday.start.year != workday.end.year or workday.start > workday.end: if workday.start.day != workday.end.day or workday.start.month != workday.end.month or workday.start.year != workday.end.year or workday.start > workday.end:
messages.success(request, f'Der Arbeitstag darf nur an einem Tag stattfinden und das Ende muss nach dem Anfang liegen.') messages.success(request, f'Der Arbeitstag darf nur an einem Tag stattfinden und das Ende muss nach dem Anfang liegen.')

View File

@ -111,6 +111,9 @@
{% if agc.personname|length > 0 %} {% if agc.personname|length > 0 %}
Ansprechpartner: {{agc.personname}}<br/> Ansprechpartner: {{agc.personname}}<br/>
{% endif %} {% endif %}
{% if agc.function|length > 0 %}
Funktion: {{agc.function}}<br/>
{% endif %}
{% if agc.mail|length > 0 %} {% if agc.mail|length > 0 %}
E-Mailadresse: <a href="mailto:{{agc.mail}}">{{agc.mail}}</a><br /> E-Mailadresse: <a href="mailto:{{agc.mail}}">{{agc.mail}}</a><br />
{% endif %} {% endif %}
@ -128,7 +131,7 @@
{% endif %} {% endif %}
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schließen</button> <button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -5,24 +5,19 @@
<h3>Supportanfrage stellen</h3> <h3>Supportanfrage stellen</h3>
<small>Haben Sie schon in unserem <a href="https://digitale-agentur.com/" target="_blank">Wiki</a> nachgesehen? Dort finden Sie viele Tipps und Anregungen!</small> <small>Haben Sie schon in unserem <a href="https://digitale-agentur.com/" target="_blank">Wiki</a> nachgesehen? Dort finden Sie viele Tipps und Anregungen!</small>
<hr> <hr>
<form method="POST" enctype="multipart/form-data"> <form method="POST" enctype="multipart/form-data" id="supportform">
<!-- TODO: Hier ein Modal oä einbauen, damit der Request in Ruhe durchlaufen kann und keine Tickets doppelt verschickt werden. Der JSON-Request dauert so lange, daher könnten Nutzer mehrere Tickets verschicken -->
{% csrf_token %} {% csrf_token %}
{{form|crispy}} {{form|crispy}}
<div class="form-group"> <div class="form-group">
<button type="submit" class="btn btn-primary">Supportanfrage verschicken</button>&nbsp; <button type="submit" class="btn btn-primary" id="sendSupport" onclick="deactivateButton()">Supportanfrage verschicken</button>&nbsp;
<a href="{% url 'users-dashboard' %}" class="btn">Abbrechen</a> <a href="{% url 'users-dashboard' %}" class="btn">Abbrechen</a>
</div> </div>
</form> </form>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* function deactivateButton(){
$(document).ready(function() { $("#sendSupport").prop("disabled", true);
$('#id_problem').summernote({ $("#supportform").submit();
height: 320, }
lang: "de-DE",
disableDragAndDrop: true
});
});*/
</script> </script>
{% endblock content %} {% endblock content %}

View File

@ -1362,7 +1362,7 @@ def support(request):
} }
json_data = json.dumps(ostdata) json_data = json.dumps(ostdata)
r = requests.post("https://support.vh-solutions.de/api/http.php/tickets.json", data=json_data, headers=headers) r = requests.post("https://support.vh-solutions.de/api/http.php/tickets.json", data=json_data, headers=headers)
# IF request FAILED error-Message # IF request FAILED error-Message
@ -1372,7 +1372,7 @@ def support(request):
messages.success(request, f'Supportanfrage erfolgreich! Ihre Ticketnummer ist '+ str(r.json()) +'!') messages.success(request, f'Supportanfrage erfolgreich! Ihre Ticketnummer ist '+ str(r.json()) +'!')
msg_html = render_to_string('users/supportanswer_mail.html', { 'name' : name, 'text' : problem, 'number' : str(r.json())}) msg_html = render_to_string('users/supportanswer_mail.html', { 'name' : name, 'text' : problem, 'number' : str(r.json())})
send_mail("Re: Digitale Agentur: " + str(problemconc) + " [#" + str(r.json()) + "]","Hallo " + name + ", wir haben Ihre Anfrage unter der Ticketnummer " + str(r.json()) + " aufgenommen. Ihre Problembeschreibung: " + problem + " - Vielen Dank. Ihr Team der Digitalen Agentur ",'noreply@digitale-agentur.com',[mail],html_message=msg_html,fail_silently=True) send_mail("Re: Digitale Agentur: " + str(problemconc) + " [#" + str(r.json()) + "]","Hallo " + name + ", wir haben Ihre Anfrage unter der Ticketnummer " + str(r.json()) + " aufgenommen. Ihre Problembeschreibung: " + problem + " - Vielen Dank. Ihr Team der Digitalen Agentur ",'noreply@digitale-agentur.com',[mail],html_message=msg_html,fail_silently=True)
return render(request, 'users/support_done.html', context) return render(request, 'users/support_done.html', context)
else: else:
@ -1845,14 +1845,13 @@ def cronactionsbill(request, code):
if(json.loads(r.text)["voucherStatus"] == "paid"): if(json.loads(r.text)["voucherStatus"] == "paid"):
bill.billstatus="paid" bill.billstatus="paid"
bill.save() bill.save()
mailstatus += "VOUCHERSTATUS BILL CHANGED TO PAID: " + str(bill.pk) mailstatus += "\n VOUCHERSTATUS BILL CHANGED TO PAID: " + str(bill.pk)
else: else:
bill.billstatus="open" bill.billstatus="open"
bill.save() bill.save()
except: except:
mailstatus += "VOUCHERSTATUS ERROR ON BILL " + str(bill.pk) mailstatus += "\n VOUCHERSTATUS ERROR ON BILL " + str(bill.pk)
# Monatliche Berechnung # Monatliche Berechnung
@ -2011,13 +2010,13 @@ def cronactionsbill(request, code):
email.send() email.send()
#send_mail('Digitale Agentur | Rechnung', 'Sehr geehrte Nutzer, es wurde eine Rechnung für Ihre Digitale Agentur erstellt. Diese können Sie unter Einstellungen, Abrechnung einsehen.','noreply@digitale-agentur.com',[mail_to_send],html_message=msg_html,fail_silently=True) #send_mail('Digitale Agentur | Rechnung', 'Sehr geehrte Nutzer, es wurde eine Rechnung für Ihre Digitale Agentur erstellt. Diese können Sie unter Einstellungen, Abrechnung einsehen.','noreply@digitale-agentur.com',[mail_to_send],html_message=msg_html,fail_silently=True)
data.update({"newBill_" + str(agency.pk) : newbill.lexid}) data.update({"newBill_" + str(agency.pk) : newbill.lexid})
mailstatus += "NEW BILL FOR AGENCY " + str(agency.pk) mailstatus += "\n NEW BILL FOR AGENCY " + str(agency.pk)
except: except:
mailstatus += "ERROR BY SENDING NEW MAIL TO " + str(agency.pk) mailstatus += "\n ERROR BY SENDING NEW MAIL TO " + str(agency.pk)
else: else:
data.update({"status" : "failed"}) data.update({"status" : "failed"})
mailstatus += " END " mailstatus += "\n END "
send_mail( send_mail(
'DA-CRON: BILLS', 'DA-CRON: BILLS',
mailstatus, mailstatus,