Changeset 7ee21d8
- Timestamp:
- Jul 7, 2014, 9:44:27 PM (11 years ago)
- Branches:
- master
- Children:
- b61cf1a
- Parents:
- 2b31097
- git-author:
- Alex Dehnert <adehnert@…> (07/07/14 21:44:27)
- git-committer:
- Alex Dehnert <adehnert@…> (07/07/14 21:44:27)
- Location:
- remit/vouchers
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
remit/vouchers/admin.py
r9102ac9 r7ee21d8 27 27 list_display_links = ('description', ) 28 28 29 class RFPAdmin(admin.ModelAdmin): 30 list_display = ('name', 'rfp_number', 'rfp_submit_time', 'payee_type', 'payee_name', 'item_amount', 'item_co', 'item_gl') 31 29 32 admin.site.register(vouchers.models.ReimbursementRequest, ReimbursementRequestAdmin) 30 33 admin.site.register(vouchers.models.Voucher, VoucherAdmin) 34 admin.site.register(vouchers.models.RFP, RFPAdmin) -
remit/vouchers/models.py
r2b31097 r7ee21d8 101 101 def convert_to_rfp(self, ): 102 102 rfp = RFP() 103 max_name_len = RFP._meta.get_field_by_name('name')[0].max_length 104 rfp.name = ("%s: %s" % (self.label(), self.name))[:max_name_len] 105 rfp.payee_type = self.recipient_type 106 rfp.payee_name = "%s %s" % (self.check_to_first_name, self.check_to_last_name) 107 rfp.fill_addr(self.check_to_addr) 108 rfp.item_date = self.incurred_time.date() 109 rfp.item_gl = self.expense_area.get_account_number() 110 rfp.item_co = self.budget_area.get_account_number() 111 rfp.item_amount = self.amount 112 rfp.item_desc = self.description 103 113 rfp.save() 104 114 self.create_transfers() … … 202 212 203 213 class RFP(models.Model): 204 addr_regex = re.compile(r'^(?P<addr>.+)\n(?P<city>.+), (?P<state>\w\w) (?P<zip>\d{5}(-\d{4})?)$') 214 # Class constants 215 addr_regex = re.compile(r'^(?P<street>.+)\n(?P<city>.+), (?P<state>\w\w) (?P<zip>\d{5}(-\d{4})?)$') 205 216 addr_error = 'Address must two lines: a street address, followed by "<city>, <two letter state abbreviation> <zip>". For non-US addresses, please contact a Treasurer for help.' 206 217 218 # Fields 207 219 create_time = models.DateTimeField(default=datetime.datetime.now) 220 rfp_submit_time = models.DateTimeField(default=None, null=True, blank=True) 221 rfp_number = models.IntegerField(default=None, null=True, blank=True) 222 223 name = models.CharField(max_length=25, verbose_name='short description', ) 224 payee_type = models.CharField(choices=recipient_type_choices, max_length=10, default='other') 225 payee_name = models.CharField(max_length=35, ) 226 addr_street = models.CharField(max_length=35, verbose_name='street address', blank=True, ) 227 addr_city = models.CharField(max_length=35, verbose_name='city', blank=True, ) 228 addr_state = models.CharField(max_length=10, verbose_name='state', blank=True, ) 229 addr_zip = models.CharField(max_length=10, verbose_name='zipcode', blank=True, ) 230 item_date = models.DateField() 231 item_gl = models.CharField(max_length=10, verbose_name="item's G/L account") 232 item_co = models.CharField(max_length=12, verbose_name="item's cost object") 233 item_amount = models.DecimalField(max_digits=7, decimal_places=2) 234 item_desc = models.TextField() 235 documentation = models.ForeignKey('Documentation', blank=True, null=True, ) 236 237 def fill_addr(self, address): 238 match = self.addr_regex.match(address) 239 assert match != None 240 self.addr_street = match.group("street") 241 self.addr_city = match.group("city") 242 self.addr_state = match.group("state") 243 self.addr_zip = match.group("zip") 208 244 209 245 def __unicode__(self, ): 210 246 return "RFP: %s" % (self.create_time.strftime(settings.SHORT_DATETIME_FORMAT_F), ) 247 248 class Meta: 249 verbose_name = "RFP" 211 250 212 251 class Documentation(models.Model):
Note: See TracChangeset
for help on using the changeset viewer.