I have a few forms with a lot of TextCtrl's. Currently I have lines of code that populate each box.
This makes for a lot of almost identical code.
Code: Select all
def populate(self, emp):
#Monday
emp.m_mon1.SetValue(str(self.mon1))
emp.m_mon1_c.SetValue(str(self.mon1_climbing))
emp.m_mon2.SetValue(str(self.mon2))
emp.m_mon2_c.SetValue(str(self.mon2_climbing))
emp.m_mon3.SetValue(str(self.mon3))
emp.m_mon3_c.SetValue(str(self.mon3_climbing))
mon1_total_value = (self.mon1 + self.mon1_climbing) if (self.mon1 + self.mon1_climbing + self.mon2 + self.mon2_climbing
+ self.mon3 +
self.mon3_climbing) < 8.0
else (self.mon1 + self.mon1_climbing - 0.5)
emp.m_mon1_tot.SetLabel(str(mon1_total_value))
mon2_total_value = self.mon2 + self.mon2_climbing
emp.m_mon2_tot.SetLabel(str(mon2_total_value))
mon3_total_value = self.mon3 + self.mon3_climbing
emp.m_mon3_tot.SetLabel(str( mon3_total_value))
emp.m_mon_tot.SetValue(str(mon1_total_value + mon2_total_value + mon3_total_value))
mon1_job_number = Job.find(self.mon1_job_id)
mon2_job_number = Job.find(self.mon2_job_id)
mon3_job_number = Job.find(self.mon3_job_id)
if mon1_job_number is not None:
emp.m_mon1_job.SetValue(str(mon1_job_number.job_no))
emp.m_mon1_site.SetLabel(str(mon1_job_number.site + " - " + mon1_job_number.client.name))
if mon2_job_number is not None:
emp.m_mon2_job.SetValue(str(mon2_job_number.job_no))
emp.m_mon2_site.SetLabel(str(mon2_job_number.site + " - " + mon2_job_number.client.name))
if mon3_job_number is not None:
emp.m_mon3_job.SetValue(str(mon3_job_number.job_no))
emp.m_mon3_site.SetLabel(str(mon3_job_number.site + " - " + mon3_job_number.client.name))
#Tuesday
emp.m_tue1.SetValue(str(self.tue1))
emp.m_tue1_c.SetValue(str(self.tue1_climbing))
emp.m_tue2.SetValue(str(self.tue2))
emp.m_tue2_c.SetValue(str(self.tue2_climbing))
emp.m_tue3.SetValue(str(self.tue3))
emp.m_tue3_c.SetValue(str(self.tue3_climbing))
tue1_total_value = (self.tue1 + self.tue1_climbing) if (self.tue1 + self.tue1_climbing +
self.tue2 + self.tue2_climbing
+ self.tue3 +
self.tue3_climbing) < 8.0
else (self.tue1 + self.tue1_climbing - 0.5)
emp.m_tue1_tot.SetLabel(str(tue1_total_value))
tue2_total_value = self.tue2 + self.tue2_climbing
emp.m_tue2_tot.SetLabel(str(tue2_total_value))
tue3_total_value = self.tue3 + self.tue3_climbing
emp.m_tue3_tot.SetLabel(str(tue3_total_value))
tue1_job_number = Job.find(self.tue1_job_id)
tue2_job_number = Job.find(self.tue2_job_id)
tue3_job_number = Job.find(self.tue3_job_id)
if tue1_job_number is not None:
emp.m_tue1_job.SetValue(str(tue1_job_number.job_no))
emp.m_tue1_site.SetLabel(str(tue1_job_number.site + " - " + tue1_job_number.client.name))
if tue2_job_number is not None:
emp.m_tue2_job.SetValue(str(tue2_job_number.job_no))
emp.m_tue2_site.SetLabel(str(tue2_job_number.site + " - " + tue2_job_number.client.name))
if tue3_job_number is not None:
emp.m_tue3_job.SetValue(str(tue3_job_number.job_no))
emp.m_tue3_site.SetLabel(str(tue3_job_number.site + " - " + tue3_job_number.client.name))
I have thought about including the TextCtrl identifiers in an array
box_ids = [m_mon1, m_mon2, m_mon3]
then looping through
Code: Select all
for id in box_id:
I would then need to do something similar with the data.
Is there a standard pattern for this sort of problem when working with wxPython?