From 5e4ea50cabd772822cce0cbb2aa502d9d963069d Mon Sep 17 00:00:00 2001 From: Jonas Heinrich Date: Mon, 29 Dec 2025 03:16:50 +0100 Subject: [PATCH] some more tweaks --- assets/antrag_vorlage.docx | Bin 32706 -> 32502 bytes meinantrag.py | 89 ++++++++- templates/base.html | 389 +++++++++++++++++++++++++------------ templates/index.html | 218 ++++++++++++--------- vorlage.html | 315 ------------------------------ 5 files changed, 469 insertions(+), 542 deletions(-) delete mode 100644 vorlage.html diff --git a/assets/antrag_vorlage.docx b/assets/antrag_vorlage.docx index 7e4ce2a6ee1f500dc8001d1594ae3429f539bb15..7802c2128fe623fe4cbbfb7b6562cb3e0a13c66b 100644 GIT binary patch delta 21089 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 delta 21123 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 {% block title %}MeinAntrag{% endblock %} - + @@ -30,61 +30,211 @@ {% block meta_extra %}{% endblock %} {% block extra_css %}{% endblock %} - -
-
- {% block content %}{% endblock %} -
- - - -
+ + {% block content %}{% endblock %} + + - - + {% block extra_js %}{% endblock %} - \ No newline at end of file + diff --git a/templates/index.html b/templates/index.html index 85ba159..86f4f7c 100644 --- a/templates/index.html +++ b/templates/index.html @@ -3,83 +3,90 @@ {% block title %}MeinAntrag{% endblock %} {% block content %} -
-

MeinAntrag

-

- Erstelle einfach Vorlagen für Anfragen oder Anträge an die Karlsruher Stadtverwaltung - zu deinem persönlichen Thema und schicke diese direkt an eine Stadtratsfraktion! -

- -
-
-
- - +
+

MeinAntrag

+

Erstelle einfach Vorlagen für Anfragen oder Anträge an die Karlsruher Stadtverwaltung zu deinem persönlichen Thema und schicke diese direkt an eine Stadtratsfraktion!

+
+ +
+ +
    +
  • + + +
    +
  • +

    Fraktion auswählen

    +

    Wähle die Fraktion, an die der Antrag gerichtet ist:

    + +
  • + +
  • +

    Dein Anliegen beschreiben

    +

    Beschreibe hier, welche Anfrage oder Antrag du an die Stadtverwaltung stellen möchtest:

    + +
  • + +
  • + +
-
- - + - -
- -
-
- - - -
+ + + +

+ + + + {% endblock %} {% block extra_js %} @@ -102,8 +109,8 @@ const $btnText = $button.find('.btn-text'); const $loading = $button.find('.loading'); $button.prop('disabled', true); - $btnText.text('Generiere Antrag...'); - $loading.css('display', 'inline-block'); + $btnText.text('Generiere Antrag'); + $loading.css('display', 'inline'); // Prepare form data as URL-encoded const formData = new URLSearchParams(); @@ -135,8 +142,9 @@ $('#forderung').val(data.demand || ''); $('#begruendung').val(data.justification || ''); - // Store party name for mail button + // Store party name and email body for mail button $('#resultFields').data('party-name', data.party_name || ''); + $('#resultFields').data('email-body', data.email_body || ''); // Update mail button text if (data.party_name) { @@ -153,7 +161,7 @@ // Reset button state $button.prop('disabled', false); $btnText.text('Antrag generieren'); - $loading.hide(); + $loading.css('display', 'none'); }) .catch(error => { console.error('Error:', error); @@ -162,7 +170,7 @@ // Reset button state $button.prop('disabled', false); $btnText.text('Antrag generieren'); - $loading.hide(); + $loading.css('display', 'none'); }); }); @@ -189,18 +197,9 @@ const partyName = $('#resultFields').data('party-name') || ''; const email = partyContacts[partyName] || ''; const subject = encodeURIComponent($('#antragstitel').val() || ''); - const title = $('#antragstitel').val() || ''; - const demand = $('#forderung').val() || ''; - const justification = $('#begruendung').val() || ''; + const emailBody = $('#resultFields').data('email-body') || ''; - // Build email body - let body = title + '\n\n'; - body += 'Der Gemeinderat möge beschließen:\n'; - body += demand + '\n\n'; - body += 'Begründung/Sachverhalt\n'; - body += justification; - - const bodyEncoded = encodeURIComponent(body); + const bodyEncoded = encodeURIComponent(emailBody); // Open mail client if (email) { @@ -210,6 +209,38 @@ } }); + // Function to create a valid filename from title + function createFilename(title) { + if (!title || !title.trim()) { + return 'antrag.docx'; + } + + // Remove or replace special characters + let filename = title + .trim() + .toLowerCase() + .replace(/[ä]/g, 'ae') + .replace(/[ö]/g, 'oe') + .replace(/[ü]/g, 'ue') + .replace(/[ß]/g, 'ss') + .replace(/[^a-z0-9\s-]/g, '') // Remove special chars except spaces and hyphens + .replace(/\s+/g, '_') // Replace spaces with underscores + .replace(/_+/g, '_') // Replace multiple underscores with single + .replace(/^_+|_+$/g, ''); // Remove leading/trailing underscores + + // Limit length to 100 characters + if (filename.length > 100) { + filename = filename.substring(0, 100); + } + + // If empty after cleaning, use default + if (!filename) { + return 'antrag.docx'; + } + + return filename + '.docx'; + } + // Handle Word button click $('#wordBtn').on('click', function() { const title = $('#antragstitel').val() || ''; @@ -226,6 +257,9 @@ formData.append('party_name', partyName); } + // Generate filename from title + const filename = createFilename(title); + // Download Word file fetch('/api/generate-word', { method: 'POST', @@ -244,7 +278,7 @@ const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; - a.download = 'antrag.docx'; + a.download = filename; document.body.appendChild(a); a.click(); window.URL.revokeObjectURL(url); @@ -257,4 +291,4 @@ }); }); -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/vorlage.html b/vorlage.html deleted file mode 100644 index 885b26a..0000000 --- a/vorlage.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - - - - - -GitHub Pages | Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live. - - - - - - - - - - - - - - - - - - - - -
- - -

Websites for you and your projects.

-

Hosted directly from your GitHub repository. Just edit, push, and your changes are live.

- - Pages Help - -
- Bootstrap -
-
- -
-

Ready to get started? Build your own site from scratch or generate one for your project.

-

You get one site per GitHub account and organization,
and unlimited project sites. Let‘s get started.

- - - - -
    -
  • -

    Create a repository

    -

    Head over to GitHub and create a new public repository named username.github.io, where username is your username (or organization name) on GitHub.

    - -

    If the first part of the repository doesn’t exactly match your username, it won’t work, so make sure to get it right.

    -
  • - -
  • -

    What git client are you using?

    - -
  • - -
  • -

    Download GitHub Desktop

    -

    GitHub Desktop is a great way to use Git and GitHub on macOS and Windows.

    - - Download GitHub Desktop - - GitHub Desktop screenshot -
  • - -
  • -

    Clone the repository

    -

    Go to the folder where you want to store your project, and clone the new repository:

    - -
    -
    -
    -

    ~$git clone https://github.com/username/username.github.io

    -
    -
    -
  • - -
  • -

    Clone the repository

    -

    Click the "Set up in Desktop" button. When the GitHub desktop app opens, save the project.

    - -

    If the app doesn't open, launch it and clone the repository from the app.

    -
  • - -
  • -

    Clone the repository

    -

    After finishing the installation, head back to GitHub.com and refresh the page. Click the "Set up in Desktop" button. When the GitHub desktop app opens, save the project.

    - -

    If the app doesn't open, launch it and clone the repository from the app.

    -
  • - -
  • -

    Hello World

    -

    Enter the project folder and add an index.html file:

    - -
    -
    -
    -

    ~$cd username.github.io

    -

    ~$echo "Hello World" > index.html

    -
    -
    -
  • - -
  • -

    Create an index file

    -

    Grab your favorite text editor and add an index.html file to your project:

    - -
    -
    index.html
    - -
    <!DOCTYPE html>
    -<html>
    -<body>
    -<h1>Hello World</h1>
    -<p>I'm hosted with GitHub Pages.</p>
    -</body>
    -</html>
    -
    -
  • - -
  • -

    Push it

    -

    Add, commit, and push your changes:

    - -
    -
    -
    -

    ~$git add --all

    -

    ~$git commit -m "Initial commit"

    -

    ~$git push -u origin main

    -
    -
    -
  • - -
  • -

    Commit & publish

    - -

    Enter the repository, commit your changes, and press the publish button.

    - - Demonstration of steps required to create the initial commit and publish the repository in GitHub Desktop -
  • - -
  • -

    …and you're done!

    -

    Fire up a browser and go to https://username.github.io.

    -
    - -
    -
  • -
- - - -
    -
  • -

    Use a theme, or start from scratch?

    -

    You have the option to start with one of the pre-built themes, -
    or to create a site from scratch. -

    -
  • - -
  • -

    Repository Settings

    -

    Head over to GitHub.com and create a new repository, or go to an existing one. -
    Click on the Settings tab.

    - - Settings for a repository -
  • - -
  • -

    Theme chooser

    -

    Scroll down to the GitHub Pages section. Press Choose a theme.

    - Automatic Generator button on GitHub.com, Settings -
  • - -
  • -

    Pick a theme

    -

    Choose one of the themes from the carousel at the top. -
    When you're done, click Select theme on the right.

    - - Choose layout -
  • - -
  • -

    Edit content

    -

    Use the editor to add content to your site.

    - Add content to your GitHub Pages site -
  • - -
  • -

    Commit

    -

    Enter a commit comment and click on Commit changes below the editor.

    - Commit Markdown content to your repository -
  • - - -
  • -

    Create an index file

    -

    Head over to GitHub.com and create a new repository, or go to an existing one. -
    Click on the Create new file button.

    - - Create a file in your repository -
  • - -
  • -

    Hello World

    -

    Name the file index.html and type some HTML content into the editor.

    - - Hello World on GitHub.com -
  • - -
  • -

    Commit the file

    -

    Scroll to the bottom of the page, write a commit message, and commit the new file.

    - - Commit the file -
  • - -
  • -

    Repository Settings

    -

    Click on the Settings tab and scroll down to the GitHub Pages section. -
    Then select the main branch source and click on the Save button.

    - - GitHub Pages Source Setting -
  • - -
  • -

    …and you're done!

    -

    Fire up a browser and go to http://username.github.io/repository.

    -
    - -
    -
  • -
- -
- - -
-

Now that you’re up and running, here are a few things you should know.

- - -
- - - - - - - - - - -