mirror of
				https://gitlab.crans.org/bde/nk20-scripts
				synced 2025-10-29 22:39:51 +01:00 
			
		
		
		
	Merge branch 'merge_club' into 'master'
add script for notify club about their food See merge request bde/nk20-scripts!12
This commit is contained in:
		
							
								
								
									
										41
									
								
								management/commands/send_mail_for_food.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								management/commands/send_mail_for_food.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| # Copyright (C) 2018-2021 by BDE ENS Paris-Saclay | ||||
| # SPDX-License-Identifier: GPL-3.0-or-later | ||||
|  | ||||
| from datetime import date, timedelta | ||||
|  | ||||
| from django.core.mail import send_mail | ||||
| from django.core.management import BaseCommand | ||||
| from django.template.loader import render_to_string | ||||
| from django.utils.translation import activate | ||||
| from food.models import Food | ||||
| from member.models import Club | ||||
|  | ||||
|  | ||||
| class Command(BaseCommand): | ||||
|     def add_arguments(self, parser): | ||||
|         parser.add_argument("--report", "-r", action='store_true', help="Report the list of food to GCKs") | ||||
|         parser.add_argument("--club", "-c", action='store_true', help="Report the list of food to club") | ||||
|  | ||||
|     def handle(self, *args, **options): | ||||
|         activate('fr') | ||||
|          | ||||
|         foods = Food.objects.filter(end_of_life='').order_by('expiry_date').distinct().all() | ||||
|  | ||||
|         if options["report"]: | ||||
|             plain_text = render_to_string("scripts/food_report.txt", context=dict(foods=foods)) | ||||
|             html = render_to_string("scripts/food_report.html", context=dict(foods=foods)) | ||||
|             send_mail("[Note Kfet] Liste de la nourriture à la Kfet", plain_text, "Note Kfet 2020 <notekfet2020@crans.org>", | ||||
|                       recipient_list=["respo-info.bde@lists.crans.org", "gck.bde@lists.crans.org"], | ||||
|                       html_message=html) | ||||
|  | ||||
|         if options["club"]: | ||||
|             for club in Club.objects.all(): | ||||
|                 if Food.objects.filter(end_of_life='', owner=club).count() > 0: | ||||
|                     plain_text = render_to_string("scripts/food_report.txt", | ||||
|                                                   context=dict(foods=foods.filter(owner=club))) | ||||
|                     html = render_to_string("scripts/food_report.html", | ||||
|                                             context=dict(foods=foods.filter(owner=club))) | ||||
|                     send_mail("[Note Kfet] Liste de la nourriture de votre club", plain_text, "Note Kfet 2020 <notekfet2020@crans.org>", | ||||
|                               recipient_list=[club.email], | ||||
|                               html_message=html) | ||||
|  | ||||
							
								
								
									
										51
									
								
								templates/scripts/food_report.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								templates/scripts/food_report.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| {% load i18n %} | ||||
| {% now "Y-m-d" as today %} | ||||
| <!DOCTYPE html> | ||||
| <html lang="fr"> | ||||
| <head> | ||||
|     <meta charset="UTF-8"> | ||||
|     <title>[Note Kfet] Liste de la bouffe</title> | ||||
| </head> | ||||
| <body> | ||||
| <table> | ||||
| <thead> | ||||
| <tr> | ||||
|     <th>Club</th> | ||||
|     <th>Nom</th> | ||||
|     <th>Date de péremption</th> | ||||
|     <th>DLC/DDM</th> | ||||
|     <th>Consigne pour les GCKs</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
|     {% for food in foods %} | ||||
|     {% if today > food.expiry_date|date:"Y-m-d" %} | ||||
| 	    {% if food.date_type and food.date_type == "DLC" %} | ||||
| 		<tr bgcolor="red"> | ||||
| 	    {% else %} | ||||
| 	        <tr bgcolor="yellow"> | ||||
| 	    {% endif %} | ||||
| 	{% else %} | ||||
| 	    <tr> | ||||
| 	{% endif %} | ||||
|             <td>{{ food.owner.name }}</td> | ||||
|             <td>{{ food.name }}</td> | ||||
|             <td>{{ food.expiry_date }}</td> | ||||
| 	    {% if food.date_type %} | ||||
| 	        <td>{{ food.date_type }}</td> | ||||
| 	    {% else %} | ||||
|             	<td>--</td> | ||||
| 	    {% endif %} | ||||
|             <td>{{ food.order }}</td> | ||||
|         </tr> | ||||
|     {% endfor %} | ||||
| </tbody> | ||||
| </table> | ||||
|  | ||||
| -- | ||||
| <p> | ||||
|     Les GCKs du BDE<br> | ||||
|     {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %} | ||||
| </p> | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										14
									
								
								templates/scripts/food_report.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								templates/scripts/food_report.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| {% load i18n %} | ||||
|  | ||||
|    Propriétaire   |         Nom         |  Date de péremption  | DLC/DDM |        Consigne pour les GCKs        | | ||||
| ------------------+---------------------+----------------------+---------+--------------------------------------- | ||||
| {% for food in foods %} | ||||
|  | ||||
| {{ food.owner.name }} | {{ food.name }} | {{ food.expiry_date }} | {% if food.date_type %}{{ food.date_type }}{% else %} -- {% endif %} | {{ food.order }} | ||||
|  | ||||
| {% endfor %} | ||||
|  | ||||
| -- | ||||
| Les GCKs du BDE | ||||
|  | ||||
| {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %} | ||||
		Reference in New Issue
	
	Block a user