def weather_forcast_report_add_or_edit(sender, instance, **kwargs): """ receive signals when user adding/editing WeatherForecastReport """ user = get_current_user() if kwargs.get('created', False): add_actor = Actor.objects.get(user=user) add_activity = Verb.objects.get(name='weather_forecast_report_adding') add_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.city) action.send(add_actor, verb=add_activity, description=add_activity.description, action_object=add_object) else: edit_actor = Actor.objects.get(user=user) edit_activity = Verb.objects.get( name='weather_forecast_report_editing') edit_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.city) action.send(edit_actor, verb=edit_activity, description=edit_activity.description, action_object=edit_object)
def report_aggregator_keyword_add_or_edit(sender, instance, **kwargs): """ receive signals when user adding/editing Keyword in Report Aggregator """ user = get_current_user() if kwargs.get("created", False): add_actor = Actor.objects.get(user=user) add_activity = Verb.objects.get( name='report_aggregator_keyword_adding') add_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.keyword) action.send(add_actor, verb=add_activity, description=add_activity.description, action_object=add_object) else: edit_actor = Actor.objects.get(user=user) edit_activity = Verb.objects.get( name='report_aggregator_keyword_editing') edit_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.name) action.send(edit_actor, verb=edit_activity, description=edit_activity.description, action_object=edit_object)
def watergate_add_or_edit(sender, instance, **kwargs): """ receive signals when user adding/editing WaterGate """ user = get_current_user() if kwargs.get('raw', False): # dont trigger on fixture loaddata return False if kwargs.get('created', False): add_actor = Actor.objects.get(user=user) add_activity = Verb.objects.get(name='watergate_adding') add_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.name) action.send(add_actor, verb=add_activity, description=add_activity.description, action_object=add_object) else: edit_actor = Actor.objects.get(user=user) edit_activity = Verb.objects.get(name='wategate_editing') edit_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.name) action.send(edit_actor, verb=edit_activity, description=edit_activity.description, action_object=edit_object)
def weather_forcast_report_delete(sender, instance, **kwargs): """ receive signals when user deleting WeatherForecastReport """ user = get_current_user() delete_actor = Actor.objects.get(user=user) delete_activity = Verb.objects.get(name='weather_forecast_report_deleting') delete_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.city) action.send(delete_actor, verb=delete_activity, description=delete_activity.description, action_object=delete_object)
def sensor_report_delete(sender, instance, **kwargs): """ receive signals when user deleting SensorReport """ user = get_current_user() delete_actor = Actor.objects.get(user=user) delete_activity = Verb.objects.get(name='sensor_report_deleting') delete_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.sensorstation) action.send(delete_actor, verb=delete_activity, description=delete_activity.description, action_object=delete_object)
def event_assessment_delete(sender, instance, **kwargs): """ receive signals when user deleting Event Assessment Disaster Rehabilitation """ user = get_current_user() delete_actor = Actor.objects.get(user=user) delete_activity = Verb.objects.get(name='event_assessment_deleting') delete_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.name) action.send(delete_actor, verb=delete_activity, description=delete_activity.description, action_object=delete_object)
def watergate_delete(sender, instance, **kwargs): """ receive signals when user deleting WaterGate """ user = get_current_user() delete_actor = Actor.objects.get(user=user) delete_activity = Verb.objects.get(name='watergate_deleting') delete_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.name) action.send(delete_actor, verb=delete_activity, description=delete_activity.description, action_object=delete_object)
def report_aggregator_keyword_delete(sender, instance, **kwargs): """ receive signals when user deleting Keyword in Report Aggregator """ user = get_current_user() delete_actor = Actor.objects.get(user=user) delete_activity = Verb.objects.get(name='report_aggregator_keyword_deleting') delete_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.keyword) action.send(delete_actor, verb=delete_activity, description=delete_activity.description, action_object=delete_object)
def log_delete(sender, instance, **kwargs): log_data_dict = {"user": get_current_user()} # get user from request # set values for book deletion log for field in instance.fields_for_logging(): prev_field = 'prev_%s' % field log_data_dict[prev_field] = getattr(instance, prev_field) log_data_dict["action_type"] = LogBookAction.DELETE LogBookAction.objects.create(**log_data_dict)
def waterlevel_report_delete(sender, instance, **kwargs): """ receive signals when user deleting WaterLevelReport """ user = get_current_user() delete_actor = Actor.objects.get(user=user) delete_activity = Verb.objects.get(name='waterlevel_report_deleting') delete_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.watergate) action.send(delete_actor, verb=delete_activity, description=delete_activity.description, action_object=delete_object)
def website_video_delete(sender, instance, **kwargs): """ receive signals when user deleting Video Website """ user = get_current_user() delete_actor = Actor.objects.get(user=user) delete_activity = Verb.objects.get(name='website_video_deleting') delete_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.title) action.send(delete_actor, verb=delete_activity, description=delete_activity.description, action_object=delete_object)
def pusdalops_template_delete(sender, instance, **kwargs): """ receive signals when user deleting Pusdalops Template """ user = get_current_user() delete_actor = Actor.objects.get(user=user) delete_activity = Verb.objects.get(name='pusdalops_template_deleting') delete_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.name) action.send(delete_actor, verb=delete_activity, description=delete_activity.description, action_object=delete_object)
def early_warning_report_delete(sender, instance, **kwargs): """ receive signals when user deleting EarlyWarningReport """ user = get_current_user() delete_actor = Actor.objects.get(user=user) delete_activity = Verb.objects.get(name='early_warning_report_deleting') delete_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.title) action.send(delete_actor, verb=delete_activity, description=delete_activity.description, action_object=delete_object)
def report_aggregator_keyword_delete(sender, instance, **kwargs): """ receive signals when user deleting Keyword in Report Aggregator """ user = get_current_user() delete_actor = Actor.objects.get(user=user) delete_activity = Verb.objects.get( name='report_aggregator_keyword_deleting') delete_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.keyword) action.send(delete_actor, verb=delete_activity, description=delete_activity.description, action_object=delete_object)
def early_warning_report_add_or_edit(sender, instance, **kwargs): """ receive signals when user adding/editing EarlyWarningReport """ user = get_current_user() if kwargs.get('created', False): add_actor = Actor.objects.get(user=user) add_activity = Verb.objects.get(name='early_warning_report_adding') add_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.title) action.send(add_actor, verb=add_activity, description=add_activity.description, action_object=add_object) else: edit_actor = Actor.objects.get(user=user) edit_activity = Verb.objects.get(name='early_warning_report_editing') edit_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.title) action.send(edit_actor, verb=edit_activity, description=edit_activity.description, action_object=edit_object)
def event_assessment_add_or_edit(sender, instance, **kwargs): """ receive signals when user adding/editing Event Assessment Disaster Rehabilitation """ user = get_current_user() if kwargs.get("created", False): add_actor = Actor.objects.get(user=user) add_activity = Verb.objects.get(name='event_assessment_adding') add_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.name) action.send(add_actor, verb=add_activity, description=add_activity.description, action_object=add_object) else: edit_actor = Actor.objects.get(user=user) edit_activity = Verb.objects.get(name='event_assessment_editing') edit_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.name) action.send(edit_actor, verb=edit_activity, description=edit_activity.description, action_object=edit_object)
def watergate_add_or_edit(sender, instance, **kwargs): """ receive signals when user adding/editing WaterGate """ user = get_current_user() if kwargs.get('created', False): add_actor = Actor.objects.get(user=user) add_activity = Verb.objects.get(name='watergate_adding') add_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.name) action.send(add_actor, verb=add_activity, description=add_activity.description, action_object=add_object) else: edit_actor = Actor.objects.get(user=user) edit_activity = Verb.objects.get(name='wategate_editing') edit_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.name) action.send(edit_actor, verb=edit_activity, description=edit_activity.description, action_object=edit_object)
def report_aggregator_keyword_add_or_edit(sender, instance, **kwargs): """ receive signals when user adding/editing Keyword in Report Aggregator """ user = get_current_user() if kwargs.get("created", False): add_actor = Actor.objects.get(user=user) add_activity = Verb.objects.get(name='report_aggregator_keyword_adding') add_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.keyword) action.send(add_actor, verb=add_activity, description=add_activity.description, action_object=add_object) else: edit_actor = Actor.objects.get(user=user) edit_activity = Verb.objects.get(name='report_aggregator_keyword_editing') edit_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.name) action.send(edit_actor, verb=edit_activity, description=edit_activity.description, action_object=edit_object)
def log_create_edit(sender, instance, **kwargs): log_data_dict = {"user": get_current_user()} # get user from request if kwargs['created']: # set values for book creation log for field in instance.fields_for_logging(): log_data_dict[field] = getattr(instance, field) log_data_dict["action_type"] = LogBookAction.CREATE else: # set previous and current values for book updating log for field in instance.fields_for_logging(): prev_field = 'prev_%s' % field log_data_dict[prev_field] = getattr(instance, prev_field) log_data_dict[field] = getattr(instance, field) log_data_dict["action_type"] = LogBookAction.UPDATE LogBookAction.objects.create(**log_data_dict)
def website_video_add_or_edit(sender, instance, **kwargs): """ receive signals when user adding/editing Video Website """ user = get_current_user() if kwargs.get("created", False): add_actor = Actor.objects.get(user=user) add_activity = Verb.objects.get(name='website_video_adding') add_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.title) action.send(add_actor, verb=add_activity, description=add_activity.description, action_object=add_object) else: edit_actor = Actor.objects.get(user=user) edit_activity = Verb.objects.get(name='website_video_editing') edit_object = Object.objects.create(obj_id=instance.pk, obj_text=instance.title) action.send(edit_actor, verb=edit_activity, description=edit_activity.description, action_object=edit_object)
def clean(self): # replace_report_content is a non model form field replace_report_content = self.cleaned_data.get('replace_report_content', None) template = self.cleaned_data.get('template', None) date = self.cleaned_data.get('date', None) text_id = self.cleaned_data.get('text_id', None) text_title = self.cleaned_data.get('text_title', None) text_author = self.cleaned_data.get('text_author', None) user = get_current_user() nik = user.last_name # tell user to set last_name become NIK yesterday = date + timedelta(days=-1) # get water level table and weather forecast table start = self.cleaned_data.get('start', None) end = self.cleaned_data.get('end', None) try: waterlevel_template = get_template('reporting/waterlevel.html') waterlevels = WaterLevelReport.objects.all() if start and not end: waterlevels = waterlevels.filter(created__date=start) elif start and end: waterlevels = waterlevels.filter(created__range=(start, end)) waterlevel_table = waterlevel_template.render({'waterlevels': waterlevels}) except: pass try: weatherforecast_template = get_template('reporting/weather_forecast.html') weatherforecasts = WeatherForecastReport.objects.all() if start and not end: weatherforecasts = weatherforecasts.filter(created__date=start) elif start and end: weatherforecasts = weatherforecasts.filter(created__range=(start, end)) weather_table = weatherforecast_template.render({'weatherforecasts': weatherforecasts}) except: pass # all disaster is attached disasters = template.disaster_attached.all() """ If replace_report_content is checked, override the report content with the template content. If not then just output the saved report content. """ if replace_report_content: report_content = template.content if date: report_content = report_content.replace('[[date]]', date.strftime('%A %-d %B %Y')) if yesterday: report_content = report_content.replace('[[yesterday]]', yesterday.strftime('%A %-d %B %Y')) if text_id: report_content = report_content.replace('[[id]]', text_id) if text_title: report_content = report_content.replace('[[title]]', text_title) if user: report_content = report_content.replace('[[author]]', str(user)) if text_author: report_content = report_content.replace('[[author]]', text_author) if nik: report_content = report_content.replace('[[NIK]]', nik) if waterlevel_table: report_content = report_content.replace('[[waterlevel_table]]', waterlevel_table) if weather_table: report_content = report_content.replace('[[weather_table]]', weather_table) for disaster in disasters: """cek if disaster in attached or not""" if 'BJR' in disaster.code: report_content = report_content.replace('[[bjr_rob_place_holder]]', "Terlampir") if 'GMP' in disaster.code: report_content = report_content.replace('[[gmp_place_holder]]', "Terlampir") if 'CEK' in disaster.code: report_content = report_content.replace('[[cek_place_holder]]', "Terlampir") if 'PHT' in disaster.code: report_content = report_content.replace('[[pht_place_holder]]', "Terlampir") if 'SOS' in disaster.code: report_content = report_content.replace('[[sos_place_holder]]', "Terlampir") if 'LAI' in disaster.code: report_content = report_content.replace('[[lai_place_holder]]', "Terlampir") if 'KBK' in disaster.code: report_content = report_content.replace('[[kbk_place_holder]]', "Terlampir") if 'KLB' in disaster.code: report_content = report_content.replace('[[klb_place_holder]]', "Terlampir") self.cleaned_data['content'] = report_content return self.cleaned_data
def clean(self): # replace_report_content is a non model form field replace_report_content = self.cleaned_data.get( 'replace_report_content', None) template = self.cleaned_data.get('template', None) date = self.cleaned_data.get('date', None) text_id = self.cleaned_data.get('text_id', None) text_title = self.cleaned_data.get('text_title', None) text_author = self.cleaned_data.get('text_author', None) user = get_current_user() nik = user.last_name # tell user to set last_name become NIK yesterday = date + timedelta(days=-1) # get water level table and weather forecast table start = self.cleaned_data.get('start', None) end = self.cleaned_data.get('end', None) try: waterlevel_template = get_template('reporting/waterlevel.html') waterlevels = WaterLevelReport.objects.all() if start and not end: waterlevels = waterlevels.filter(created__date=start) elif start and end: waterlevels = waterlevels.filter(created__range=(start, end)) waterlevel_table = waterlevel_template.render( {'waterlevels': waterlevels}) except: pass try: weatherforecast_template = get_template( 'reporting/weather_forecast.html') weatherforecasts = WeatherForecastReport.objects.all() if start and not end: weatherforecasts = weatherforecasts.filter(created__date=start) elif start and end: weatherforecasts = weatherforecasts.filter( created__range=(start, end)) weather_table = weatherforecast_template.render( {'weatherforecasts': weatherforecasts}) except: pass # all disaster is attached disasters = template.disaster_attached.all() """ If replace_report_content is checked, override the report content with the template content. If not then just output the saved report content. """ if replace_report_content: report_content = template.content if date: report_content = report_content.replace( '[[date]]', date.strftime('%A %-d %B %Y')) if yesterday: report_content = report_content.replace( '[[yesterday]]', yesterday.strftime('%A %-d %B %Y')) if text_id: report_content = report_content.replace('[[id]]', text_id) if text_title: report_content = report_content.replace( '[[title]]', text_title) if user: report_content = report_content.replace( '[[author]]', str(user)) if text_author: report_content = report_content.replace( '[[author]]', text_author) if nik: report_content = report_content.replace('[[NIK]]', nik) if waterlevel_table: report_content = report_content.replace( '[[waterlevel_table]]', waterlevel_table) if weather_table: report_content = report_content.replace( '[[weather_table]]', weather_table) for disaster in disasters: """cek if disaster in attached or not""" if 'BJR' in disaster.code: report_content = report_content.replace( '[[bjr_rob_place_holder]]', "Terlampir") if 'GMP' in disaster.code: report_content = report_content.replace( '[[gmp_place_holder]]', "Terlampir") if 'CEK' in disaster.code: report_content = report_content.replace( '[[cek_place_holder]]', "Terlampir") if 'PHT' in disaster.code: report_content = report_content.replace( '[[pht_place_holder]]', "Terlampir") if 'SOS' in disaster.code: report_content = report_content.replace( '[[sos_place_holder]]', "Terlampir") if 'LAI' in disaster.code: report_content = report_content.replace( '[[lai_place_holder]]', "Terlampir") if 'KBK' in disaster.code: report_content = report_content.replace( '[[kbk_place_holder]]', "Terlampir") if 'KLB' in disaster.code: report_content = report_content.replace( '[[klb_place_holder]]', "Terlampir") self.cleaned_data['content'] = report_content return self.cleaned_data