Пример #1
0
    def post(self):
        try:
            current_reader = self.require_current_reader()
            is_public = 'is_public' in self.request.POST
            reminder_frequency = self.post_str('reminder_frequency')
            name = self.post_str('name')
            time_zone = self.post_str('time_zone')
            reminder_start = self.post_datetime(
                "reminder_start", pytz.timezone(time_zone))
            utility_units = self.post_str('utility_units')
            if reminder_frequency == 'never':
                email_address = None
            else:
                email_address = self.post_str('email_address')
                confirm_email_address = self.post_str('confirm_email_address')
                email_address = email_address.strip()
                if email_address != confirm_email_address.strip():
                    raise HTTPBadRequest("The email addresses don't match.")
            customer_read_frequency = self.post_str('customer_read_frequency')

            meter = Meter(
                reader=current_reader, email_address=email_address,
                reminder_start=reminder_start,
                reminder_frequency=reminder_frequency,
                is_public=is_public, name=name, time_zone=time_zone,
                customer_read_frequency=customer_read_frequency)
            meter.put()
            utility_id, units = utility_units.split('-')
            meter.update(
                utility_id, units, name, time_zone, is_public, email_address,
                reminder_start, reminder_frequency, customer_read_frequency)
            self.return_see_other('/view_meter?meter_key=' + str(meter.key()))
        except HTTPBadRequest as e:
            self.return_bad_request(self.page_fields(current_reader, e))