port to new django, AI automated

This commit is contained in:
2026-03-30 22:35:36 +02:00
parent e2d166e437
commit 372da3caa9
215 changed files with 9283 additions and 2981 deletions

View File

@@ -1,178 +1,236 @@
{% extends "website/base.html" %}
{% load sekizai_tags staticfiles %}
{% block content %}
{% addtoblock "css" strip %}<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/portfolio.css" media="screen, projection">{% endaddtoblock %}
{% addtoblock "css" strip %}<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/lib/isotope.css">{% endaddtoblock %}
{% addtoblock "css" strip %}<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/lib/animate.css">{% endaddtoblock %}
{% addtoblock "css" %}
{% extends "website/base.html" %} {% load sekizai_tags static %} {% block content %} {% addtoblock "css" strip %}<link
rel="stylesheet"
type="text/css"
href="{{STATIC_URL}}/css/portfolio.css"
media="screen, projection"
/>{% endaddtoblock %} {% addtoblock "css" strip %}<link
rel="stylesheet"
type="text/css"
href="{{STATIC_URL}}/css/lib/isotope.css"
/>{% endaddtoblock %} {% addtoblock "css" strip %}<link
rel="stylesheet"
type="text/css"
href="{{STATIC_URL}}/css/lib/animate.css"
/>{% endaddtoblock %} {% addtoblock "css" %}
<style>
.addressbook_entry {
box-shadow: 0px 0px 7px -1px rgb(214, 214, 214);
border: 2px solid rgb(217, 217, 217);
width: 360px !important;
float: left;
padding-top: 20px;
padding-left: 5px;
padding-bottom: 20px;
border-radius: 10px;
}
.addressbook_entry {
box-shadow: 0px 0px 7px -1px rgb(214, 214, 214);
border: 2px solid rgb(217, 217, 217);
width: 360px !important;
float: left;
padding-top: 20px;
padding-left: 5px;
padding-bottom: 20px;
border-radius: 10px;
}
.addressbook_entry .name {
color: rgb(83, 83, 83);
font-weight: normal;
font-style: italic;
font-size: 18px;
margin: 0px 0px 5px;
}
.addressbook_entry .name {
color: rgb(83, 83, 83);
font-weight: normal;
font-style: italic;
font-size: 18px;
margin: 0px 0px 5px;
}
.addressbook_entry td {
padding-right: 15px;
}
.addressbook_entry td {
padding-right: 15px;
}
.addressbook_entry .picture {
max-width: 55px;
float: left;
padding-left: 10px;
}
.addressbook_entry td.labelCell {
white-space: nowrap;
}
@media (max-width: 480px) {
.addressbook_entry {
font-size: 11px;
width: 265px !important;
}
.addressbook_entry .picture {
max-width: 55px;
float: left;
padding-left: 5px;
padding-right: 5px;
}
}
@media (max-width: 300px) {
.addressbook_entry .picture {
display: none;
}
.addressbook_entry {
width: 200px !important;
}
}
.addressbook_entry .picture {
max-width: 55px;
float: left;
padding-left: 10px;
}
.addressbook_entry td.labelCell {
white-space: nowrap;
}
@media (max-width: 480px) {
.addressbook_entry {
font-size: 11px;
width: 265px !important;
}
.addressbook_entry .picture {
max-width: 55px;
float: left;
padding-left: 5px;
padding-right: 5px;
}
}
@media (max-width: 300px) {
.addressbook_entry .picture {
display: none;
}
.addressbook_entry {
width: 200px !important;
}
}
</style>
{% endaddtoblock %}
{% addtoblock "js" strip %} <script src="{{STATIC_URL}}js/jquery.isotope.min.js"></script> {% endaddtoblock %}
{% addtoblock "js" %}
{% endaddtoblock %} {% addtoblock "js" strip %}
<script src="{{STATIC_URL}}/js/jquery.isotope.min.js"></script>
{% endaddtoblock %} {% addtoblock "js" %}
<script>
$(function(){
$(function () {
var $container = $("#gallery_container"),
$filters = $("#filters a");
var $container = $('#gallery_container'),
$filters = $("#filters a");
$container.imagesLoaded( function(){
$container.isotope({
itemSelector : '.photo',
masonry: {
columnWidth: 102
}
});
$container.imagesLoaded(function () {
$container.isotope({
itemSelector: ".photo",
masonry: {
columnWidth: 102,
},
});
// filter items when filter link is clicked
$filters.click(function() {
$filters.removeClass("active");
$(this).addClass("active");
var selector = $(this).data('filter');
$container.isotope({ filter: selector });
return false;
});
});
</script>
// filter items when filter link is clicked
$filters.click(function () {
$filters.removeClass("active");
$(this).addClass("active");
var selector = $(this).data("filter");
$container.isotope({ filter: selector });
return false;
});
});
</script>
{% endaddtoblock %}
<div id="portfolio">
<div class="container">
<div class="section_header">
<h3>Adressbuch</h3>
<div class="container">
<div class="section_header">
<h3>Adressbuch</h3>
</div>
<div class="row">
<div class="span12">
<div id="filters_container">
<ul id="filters">
<li><a href="#" data-filter="*" class="active">Alle</a></li>
<li class="separator">/</li>
<li><a href="#" data-filter=".unterstimme">Unterstimmen</a></li>
<li class="separator">/</li>
<li><a href="#" data-filter=".oberstimme">Oberstimmen</a></li>
<li class="separator">/</li>
<li><a href="#" data-filter=".rest">Rest</a></li>
</ul>
</div>
</div>
</div>
<div class="row">
<div class="span12">
<div id="gallery_container" >
{% for m in musicians %}
<div class="photo isotope-item addressbook_entry {% if m.isDeepBrass %} unterstimme {% elif m.isHighBrass %} oberstimme {% else %} rest {% endif %} ">
<div>
<img src="{{MEDIA_URL}}/user_images/{{m.user}}_thumb.png" class="img-circle picture">
</div>
<div class="name">
{{ m.user.first_name }} {{m.user.last_name }}
</div>
{% if not request.device.android %}
<table>
{% if m.street %} <tr><td class="labelCell"> Adresse </td><td>{{m.street}} </td>
<tr><td class="labelCell"> </td><td>{{m.zip_code}} {{m.city}}</td>{% endif %}
{% if m.birthday %} <tr><td class="labelCell"> Geburtstag: </td><td>{{m.birthday }} </td>{% endif %}
{% if m.phone_home %} <tr><td class="labelCell"> Telefon (Home): </td><td>{{m.phone_home }} </td>{% endif %}
{% if m.phone_mobile %}<tr><td class="labelCell"> Telefon (Mobil): </td><td>{{m.phone_mobile }} </td>{% endif %}
{% if m.phone_work %} <tr><td class="labelCell"> Telefon (Arbeit): </td><td>{{m.phone_work }} </td>{% endif %}
</table>
{% else %}
<table>
{% if m.street %} <tr><td class="labelCell"> Adresse </td><td>{{m.street}} </td>
<tr><td class="labelCell"> </td><td>{{m.zip_code}} {{m.city}}</td>{% endif %}
{% if m.birthday %} <tr><td class="labelCell"> Geburtstag: </td><td>{{m.birthday }} </td>{% endif %}
{% if m.phone_home %} <tr><td class="labelCell"> Telefon (Home): </td><td><a href="tel:{{m.phone_home }}"> {{m.phone_home }} </a> </td>{% endif %}
{% if m.phone_mobile %}<tr><td class="labelCell"> Telefon (Mobil): </td><td><a href="tel:{{m.phone_mobile }}"> {{m.phone_mobile }} </a> </td>{% endif %}
{% if m.phone_work %} <tr><td class="labelCell"> Telefon (Arbeit): </td><td><a href="tel:{{m.phone_work }}"> {{m.phone_work }} </a> </td>{% endif %}
</table>
{% endif %}
</div>
{% endfor %}
</div>
</div>
</div>
</div>
<div class="row">
<div class="span12">
<div id="filters_container">
<ul id="filters">
<li>
<a href="#" data-filter="*" class="active">Alle</a>
</li>
<li class="separator">/</li>
<li>
<a href="#" data-filter=".unterstimme"
>Unterstimmen</a
>
</li>
<li class="separator">/</li>
<li>
<a href="#" data-filter=".oberstimme"
>Oberstimmen</a
>
</li>
<li class="separator">/</li>
<li><a href="#" data-filter=".rest">Rest</a></li>
</ul>
</div>
</div>
</div>
<div class="row">
<div class="span12">
<div id="gallery_container">
{% for m in musicians %}
<div
class="photo isotope-item addressbook_entry {% if m.isDeepBrass %} unterstimme {% elif m.isHighBrass %} oberstimme {% else %} rest {% endif %}"
>
<div>
<img
src="{{MEDIA_URL}}/user_images/{{m.user}}_thumb.png"
class="img-circle picture"
/>
</div>
<div class="name">
{{ m.user.first_name }} {{m.user.last_name }}
</div>
{% if not request.device.android %}
<table>
{% if m.street %}
<tr>
<td class="labelCell">Adresse</td>
<td>{{m.street}}</td>
</tr>
<tr>
<td class="labelCell"></td>
<td>{{m.zip_code}} {{m.city}}</td>
{% endif %} {% if m.birthday %}
</tr>
<tr>
<td class="labelCell">Geburtstag:</td>
<td>{{m.birthday }}</td>
{% endif %} {% if m.phone_home %}
</tr>
<tr>
<td class="labelCell">Telefon (Home):</td>
<td>{{m.phone_home }}</td>
{% endif %} {% if m.phone_mobile %}
</tr>
<tr>
<td class="labelCell">Telefon (Mobil):</td>
<td>{{m.phone_mobile }}</td>
{% endif %} {% if m.phone_work %}
</tr>
<tr>
<td class="labelCell">Telefon (Arbeit):</td>
<td>{{m.phone_work }}</td>
{% endif %}
</tr>
</table>
{% else %}
<table>
{% if m.street %}
<tr>
<td class="labelCell">Adresse</td>
<td>{{m.street}}</td>
</tr>
<tr>
<td class="labelCell"></td>
<td>{{m.zip_code}} {{m.city}}</td>
{% endif %} {% if m.birthday %}
</tr>
<tr>
<td class="labelCell">Geburtstag:</td>
<td>{{m.birthday }}</td>
{% endif %} {% if m.phone_home %}
</tr>
<tr>
<td class="labelCell">Telefon (Home):</td>
<td>
<a href="tel:{{m.phone_home }}">
{{m.phone_home }}
</a>
</td>
{% endif %} {% if m.phone_mobile %}
</tr>
<tr>
<td class="labelCell">Telefon (Mobil):</td>
<td>
<a href="tel:{{m.phone_mobile }}">
{{m.phone_mobile }}
</a>
</td>
{% endif %} {% if m.phone_work %}
</tr>
<tr>
<td class="labelCell">Telefon (Arbeit):</td>
<td>
<a href="tel:{{m.phone_work }}">
{{m.phone_work }}
</a>
</td>
{% endif %}
</tr>
</table>
{% endif %}
</div>
{% endfor %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -1,101 +1,120 @@
{% extends "website/base.html" %}
{% extends "website/base.html" %} {% load sekizai_tags static %} {% block menu_contents %} {% endblock %} {% block content %} {% addtoblock "css" strip %}<link
rel="stylesheet"
href="{{STATIC_URL}}/css/lib/animate.css"
type="text/css"
media="screen, projection"
/>{% endaddtoblock %} {% addtoblock "css" strip %}<link
rel="stylesheet"
href="{{STATIC_URL}}/css/sign-in.css"
type="text/css"
media="screen"
/>
{% endaddtoblock %} {% addtoblock "js" strip %}
<script src="{{STATIC_URL}}/js/jquery.noty.js"></script>
{% endaddtoblock %} {% addtoblock "css" strip %}<link
rel="stylesheet"
href="{{STATIC_URL}}/css/jquery.noty.css"
type="text/css"
media="screen"
/>
{% endaddtoblock %} {% addtoblock "css" strip %}<link
rel="stylesheet"
href="{{STATIC_URL}}/css/noty_theme_default.css"
type="text/css"
media="screen"
/>
{% endaddtoblock %}
<!-- For Autocompete -->
{% addtoblock "js" strip %}
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
{% endaddtoblock %} {% addtoblock "css" strip %}<link
rel="stylesheet"
href="{{STATIC_URL}}/css/jquery-ui-1.8.21.custom.css"
type="text/css"
media="screen"
/>
{% endaddtoblock %}
{% load sekizai_tags staticfiles %}
<!-- Notifications -->
{% addtoblock "js" %}
<script>
$(document).ready(function () {
$("#loginform").submit(function (e) {
$.ajax({
type: "POST",
url: "",
data: $("#loginform").serialize(),
dataType: "json",
success: function (data) {
if (data["err"]) {
noty({
text: data["err"],
layout: "top",
type: "error",
});
}
if (data["redirect"]) {
window.location.href = data["redirect"];
}
},
error: function (jqXHR, text1, text2) {
console.log(jqXHR);
console.log(text1);
console.log(text2);
},
});
e.preventDefault();
});
{% block menu_contents %}
{% endblock %}
$.get("/musicians/login/usernames", function (data) {
$("#username").autocomplete({ source: data });
});
});
</script>
{% endaddtoblock %}
<div id="sign_in">
<div class="container">
<div class="row">
<div class="span12 header">
<h4>Login zum internen Bereich</h4>
<p>Hier dürfen nur Ensemble Mitglieder rein...</p>
</div>
<div class="span12 footer" action="index.html" method="post">
<form id="loginform">
{% csrf_token %}
<input
name="username"
type="text"
placeholder="Benutzername"
id="username"
/>
<input
name="password"
type="password"
placeholder="Passwort"
/>
<input name="next" type="hidden" value="{{next}}" />
<input type="submit" placeholder="OK" value="einloggen" />
</form>
</div>
{% block content %}
{% addtoblock "css" strip %}<link rel="stylesheet" href="{{STATIC_URL}}css/lib/animate.css" type="text/css" media="screen, projection">{% endaddtoblock %}
{% addtoblock "css" strip %}<link rel="stylesheet" href="{{STATIC_URL}}css/sign-in.css" type="text/css" media="screen" /> {% endaddtoblock %}
{% addtoblock "js" strip %} <script src="{{STATIC_URL}}js/jquery.noty.js"></script> {% endaddtoblock %}
{% addtoblock "css" strip %}<link rel="stylesheet" href="{{STATIC_URL}}css/jquery.noty.css" type="text/css" media="screen" /> {% endaddtoblock %}
{% addtoblock "css" strip %}<link rel="stylesheet" href="{{STATIC_URL}}css/noty_theme_default.css" type="text/css" media="screen" /> {% endaddtoblock %}
<!-- for auto complete -->
{% addtoblock "js" strip %} <script src="{{STATIC_URL}}js/jquery-ui-1.12.1.min.js"></script> {% endaddtoblock %}
{% addtoblock "css" strip %}<link rel="stylesheet" href="{{STATIC_URL}}css/jquery-ui-1.12.1.min.css" type="text/css" media="screen" /> {% endaddtoblock %}
<!-- Notifications -->
{% addtoblock "js" %}
<script>
$(document).ready(function(){
$('#loginform').submit(function(e){
$.ajax({
type:"POST",
url:"",
data:$('#loginform').serialize(),
dataType: "json",
success: function( data )
{
if ( data['err'] ) {
noty ( { "text": data['err'],"layout":"top","type":"error" } )
}
if ( data['redirect']) {
window.location.href = data['redirect'];
}
},
error: function( jqXHR, text1, text2 ) {
console.log( jqXHR );
console.log( text1 );
console.log( text2 );
}
});
e.preventDefault();
});
$.get( "/musicians/login/usernames", function( data ) {
$("#username").autocomplete( { source: data } );
});
});
</script>
{% endaddtoblock %}
<div id="sign_in">
<div class="container">
<div class="row">
<div class="span12 header">
<h4>Login zum internen Bereich</h4>
<p>Hier dürfen nur Ensemble Mitglieder rein... </p>
<div class="span12 proof">
<div class="span6 remember">
<label class="checkbox">
<input id="remember" type="checkbox" /> Eingeloggt
bleiben
</label>
</div>
<div class="span12 footer" action="index.html" method="post">
<form id="loginform">
{% csrf_token %}
<input name="username" type="text" placeholder="Benutzername" id="username">
<input name="password" type="password" placeholder="Passwort">
<input name="next" type="hidden" value="{{next}}" >
<input type="submit" placeholder="OK" value="einloggen">
</form>
</div>
<div class="span12 proof">
<div class="span6 remember">
<label class="checkbox">
<input id="remember" type="checkbox"> Eingeloggt bleiben
</label>
</div>
<!--
<!--
<div class="span3 dosnt">
<a href="reset.html">Passwort vergessen?</a>
</div> -->
</div>
</div>
</div>
</div>
</div>
{% endblock %}