Last active
December 12, 2015 01:19
-
-
Save ren23/4690307 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@login_required | |
def report(request): | |
end = get_week_dates(datetime.now())[1] | |
begin = get_week_dates(datetime.now()-timedelta(days=7))[0] | |
if request.method == 'GET': | |
data = request.GET.copy() | |
if data: | |
form = AgendaForm(data, auto_id = True, initial={'begin':begin, 'end':end}) | |
if form.is_valid(): | |
if 'begin' in form.data and 'end' in form.data: | |
begin = form.cleaned_data['begin'] | |
end = form.cleaned_data['end'] | |
else: | |
form = AgendaForm(auto_id = True, initial={'begin':begin, 'end':end}) | |
else: | |
form = AgendaForm(auto_id = True, initial={'begin':begin, 'end':end}) | |
comments = RequestComment.objects.filter(date__range = (begin, end))\ | |
.exclude(modification_request__progress_status__in = ('refused', 'request_pending', 'pending'))\ | |
.select_related()\ | |
.order_by('modification_request__request_type', | |
'modification_request__request_number', | |
'date') | |
template_name = 'om_templates/report.html' | |
if 'printable' in form.data and form.data['printable']: | |
template_name = 'om_templates/print_report.html' | |
return render_to_response(template_name, | |
{'form':form, | |
'comments':comments | |
}, | |
context_instance=RequestContext(request)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ModificationRequest(models.Model): | |
'''ModificationRequest model: | |
title = char(200); #summary | |
description = text; | |
reporter = UserProfile; | |
approver = UserProfile; | |
approver_comment = Text; | |
closing_comment = Text; | |
progress_status = (pending, refused, order_pending, request_pending, on_progress, stand_by, finished); | |
priority_status = (min, maj); | |
ticket_id = integer; trac ticket | |
request_closing_date = date; | |
expected_request_closing_date = date; | |
instrument_type = concerned products | |
approved_date = date; | |
request_type = (OM, AFF); | |
progress = [0,1];% of progress | |
order = Order; for AFF | |
person_in_charge; | |
update_date= date; auto_now | |
creation_date= date; auto_now_add''' | |
#modification request | |
request_number = models.IntegerField(default = 0, verbose_name = _('Request number')) | |
request_code = models.CharField(max_length = 200, verbose_name = _('Request code')) | |
title = models.CharField(max_length = 200, verbose_name = _('Title')) | |
cotation = models.CharField(max_length = 200, blank = True, null = True, verbose_name = _('Cotation')) | |
reporter = models.ForeignKey(UserProfile, related_name = 'modification_requests', verbose_name = _('Reporter')) | |
working_users = models.ManyToManyField(UserProfile, blank = True, null = True, related_name = 'working_modification_requests', verbose_name = _('Working Users')) | |
date = models.DateField(verbose_name = _('Date')) | |
instrument_type = models.TextField(blank = True, null = True, verbose_name = _('Instrument Type'))# ou text | |
request_type = models.CharField(max_length=3, choices=REQUEST_CHOICES, verbose_name = _('Request Type')) #request type model? or integer or char or boolean? | |
description = models.TextField(blank = True, null = True, verbose_name = _('Description')) | |
progress_status = models.CharField(max_length=16, choices=PROGRESS_STATUS_CHOICES, default='pending', verbose_name = _('Progress status')) | |
offering_price = models.FloatField(blank = True, null = True, verbose_name = _('Offering price')) | |
cost_price = models.FloatField(blank = True, null = True, verbose_name = _('Cost price')) | |
delay = models.IntegerField(blank = True, null = True, verbose_name = _('Delay')) | |
is_reeditable = models.NullBooleanField(blank = True, null = True, verbose_name = _('Is reeditable')) | |
has_start_meeting = models.NullBooleanField(blank = True, null = True, default = False, verbose_name = _('Has start meeting')) | |
has_closing_meeting = models.NullBooleanField(blank = True, null = True, default = False, verbose_name = _('Has closing meeting')) | |
#modification order | |
approver_comment = models.TextField(blank = True, verbose_name = _('Approver comment')) | |
approver = models.ForeignKey(UserProfile, related_name = 'approved_modification_requests', null = True, blank = True, verbose_name = _('Approver')) #manytomany? | |
approved_date = models.DateField(blank = True, null = True, verbose_name = _('Approved date')) | |
beginning_date = models.DateField(null = True, blank = True, verbose_name = _('Beginning date')) | |
closing_comment = models.TextField(blank = True, null = True, verbose_name = _('Closing comment')) | |
person_in_charge = models.ForeignKey(UserProfile, related_name = 'charged_modification_requests', null = True, blank = True, verbose_name = _('Person in charge')) #manytomany? | |
progress = models.FloatField(default = 0.0, verbose_name = _('Progress')) | |
request_closing_date = models.DateField(null = True, blank = True, verbose_name = _('Request closing date')) | |
expected_request_validation_date = models.DateField(null = True, blank = True, verbose_name = _('Expected request validation date')) | |
expected_request_closing_date = models.DateField(null = True, blank = True, verbose_name = _('Expected request closing date')) | |
last_reminder_date = models.DateField(null = True, blank = True, verbose_name = _('Last reminder date')) | |
priority = models.CharField(max_length=3, choices=PRIORITY_CHOICES, null = True, blank = True, verbose_name = _('Priority')) | |
order = models.ForeignKey(Order, null = True, blank = True, verbose_name = _('Order')) | |
ticket_id = models.CharField(max_length = 10, blank = True, null = True, verbose_name = _('Ticket ID')) | |
validating_comment = models.TextField(blank = True, null = True, verbose_name = _('Validatiion comment')) | |
request_validating_date = models.DateField(null = True, blank = True, verbose_name = _('Request validation date')) | |
#infos | |
update_date = models.DateTimeField(auto_now = True) | |
creation_date = models.DateTimeField(auto_now_add = True) | |
#managers | |
objects = models.Manager() | |
AFF_objects = AFFManager() | |
OM_objects = OMManager() | |
NP_objects = NPManager() | |
class RequestComment(models.Model): | |
modification_request = models.ForeignKey(ModificationRequest, blank = True, null = True) | |
user_profile = models.ForeignKey(UserProfile) | |
text = models.TextField() | |
date = models.DateField() | |
update_date = models.DateTimeField(auto_now = True) | |
creation_date = models.DateTimeField(auto_now_add = True) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{% regroup comments by modification_request__request_type as group_list %} | |
{%for group in group_list%} | |
<h3>{{group.grouper}}</h3> | |
{% regroup group.list by modification_request_id as request_list %} | |
<table> | |
{%for request in request_list%} | |
{%for comment in request.list%} | |
{%if forloop.first%} | |
<tr><td><b><a href='{{comment.modification_request.get_order_url}}'>{{comment.modification_request.get_order_unicode}}</a> | |
: | |
{{comment.modification_request.title}} {%if comment.modification_request.person_in_charge%}({{comment.modification_request.person_in_charge}}){%endif%} | |
</b> | |
</td></tr> | |
<tr><td> | |
<ul> | |
<li> | |
<b>{{comment.date}} {%trans 'by'%} {{comment.user_profile.user.username}}: </b> | |
{{comment.text|textareatohmtl }} | |
</li> | |
{%else%} | |
<li> | |
<b>{{comment.date}} {%trans 'by'%} {{comment.user_profile.user.username}}: </b> | |
{{comment.text|textareatohmtl }} | |
</li> | |
{%endif%} | |
{%if forloop.last%} | |
</ul> | |
</td></tr> | |
{%endif%} | |
{%endfor%} | |
{%endfor%} | |
</table> | |
{%endfor%} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{% regroup comments by modification_request__request_type as group_list %} | |
{%for group in group_list%} | |
<h3>{{group.grouper}}</h3> | |
{% regroup group.list by modification_request as request_list %} | |
<table> | |
{%for request in request_list%} | |
<tr><td><a href='{{request.grouper.get_order_url}}'>{{request.grouper.get_order_unicode}}</a> | |
: | |
{{request.grouper.title}} {%if request.grouper.person_in_charge%}({{request.grouper.person_in_charge}}){%endif%} | |
</td></tr> | |
<tr><td> | |
<ul> | |
{%for comment in request.list%} | |
<li> | |
<b>{{comment.date}} {%trans 'by'%} {{comment.user_profile.user.username}}: </b> | |
{{comment.text|textareatohmtl }} | |
</li> | |
{%endfor%} | |
</ul> | |
</td></tr> | |
{%endfor%} | |
</table> | |
{%endfor%} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment