def get_fields_by_name(self, name): fields = [] for field_name in self.fields.keyOrder: if (field_name == name): aField = self.fields[field_name] fields.append(aField) return fields
def ordered_fields(self): fields = [] for field in self.field_order: rfield = self.fields[field] if rfield.category in ("internal", "multi_field", "field"): fields.append(rfield) return fields
def columns(self): """ Returns the list of selected column names. """ fields = [f.label for f in self.form_fields if self.cleaned_data["field_%s_export" % f.id]] if self.cleaned_data["field_0_export"]: fields.append(self.entry_time_name) return fields
def columns(self): """ Returns the list of selected column names. """ fields = [f.label.encode("utf-8") for f in self.questionnaire_fields if self.posted_data("field_%s_export" % f.id)] if self.posted_data("field_0_export"): fields.append(self.entry_time_name) return fields
def cycle(self, fields=None, now=None): if not now: now = int(time.time()) tomorrow = int(time.mktime((datedate.fromtimestamp(now) + timedelta(days=1)).timetuple())) if not fields: fields = self.fields_list else: fields_ = fields fields = [] for f in fields_: fields.append(self.fields[f]) for field in fields: if not field.cycle: continue updatetime = getattr(self, field.timestamp, 0)#下次更新的时间 if field.resume: if not updatetime: setattr(self, field.timestamp, now + field.resume) elif updatetime <= now:#下次更新的时间已经到了,或者已经过去了 interval = now - updatetime#超过的时间 multi = interval // field.resume + 1 #超过的周期数 + 原本的一个周期 rest = interval % field.resume #未达一个周期的剩余的时间 max = getattr(self, field.max) old = getattr(self, field.name) if old < max: new = min(old + multi * 1, max) setattr(self, field.name, new) setattr(self, field.timestamp, now + field.resume - rest)#设置下次更新时间 else: if updatetime: if datedate.fromtimestamp(updatetime) <= datedate.fromtimestamp(now): if callable(field.default): default = field.default() else: default = field.default setattr(self, field.name, default) setattr(self, field.timestamp, tomorrow)
def get_candidate_fields_as_csv(self): if self.is_total: return "" fields = [] for num in range(self.num_candidates): fields.append(self.id) for k in self.candidate_fields_list: fields.append( Field(k, self.candidate_fields_list[k](num), self.source_string).value.strip()) i = 0 str = "" for f in fields: i += 1 str += f if i % 4 == 0: str += "\n" else: str += "\t" return str