示例#1
0
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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
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)
示例#5
0
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)
示例#6
0
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)
示例#7
0
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)
示例#8
0
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)
示例#9
0
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)
示例#10
0
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)
示例#11
0
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)
示例#12
0
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)
示例#13
0
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)
示例#14
0
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)
示例#15
0
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)
示例#16
0
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)
示例#17
0
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)
示例#18
0
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)
示例#19
0
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)
示例#20
0
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)
示例#21
0
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)
示例#22
0
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)
示例#23
0
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)
示例#24
0
文件: forms.py 项目: geoenvo/opendims
    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
示例#25
0
    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