Richard, 

Let say that I have two IPs in ipaddress table:

10.1.1.1  FREE
10.2.2.2 FREE

I add a server into server table, i put name as server1 and chose IP from 
dropdown menu 10.1.1.1.
Then my ipaddress table looks like that
10.1.1.1 USED
10.2.2.2 FREE

But i noticed that i did a typo in server name... in fact server name 
should be server111, so i use grid to display server table and use update 
button next to "server1" record. I change server name to server111 and i 
need to chose an IP again (as IP dropdown field is blank). So now i would 
like to chose same IP as before, but I'm not able to do it, because 
dropdown shows just 10.2.2.2 which make sense as i used 

 requires=IS_IN_DB(db(db.ipaddress.status=='Free'),db.ipaddress.ip, 
'%(ip)s')),

So my question is how to make IP 10.1.1.1 visiable on the list when i'm 
updating the record? 

Regards.

On Thursday, 7 May 2015 15:52:07 UTC+2, Richard wrote:
>
> Ok, I don't understand... Can you go back one step and explain what kind 
> of information you want to manage and why you think you have to update the 
> IP address... Is there multiple records with the same server name if so 
> why... It seems to me that you want to manage kind of history of IP 
> attached to a given device... If so, you DB schema is not sufficient, you 
> will need an archive table which will contains the old state of your server 
> record... In your server table there will be only a single record for each 
> of your server and in the history table when you update this single record 
> the old state of the record will be copied there, so you can track all the 
> IP a given server had in the past... An history table is easy achieve in 
> web2py with record versioning...
>
> Richard
>
> On Thu, May 7, 2015 at 6:52 AM, <kecajk...@gmail.com <javascript:>> wrote:
>
>> Hi, 
>>
>> What's the difference between what i wrote and what You wrote? 
>> And i believe You didn't get my point. Checking if IP is Free works 
>> correctly. Point is that i want do update the one row in Server table and 
>> change i.e. server name. I click on update button provided by grid, and i 
>> can change the name of the server (withouth changing its IP), but i need to 
>> chose an IP as well. Problem is that on the IP list, IP i used for that 
>> server before is marked as Used, so i won't see it on the list and i can't 
>> chose it again. How to make it available for selection while i'm updating 
>> the row.
>>
>> Thanks
>> On Wednesday, 6 May 2015 16:52:05 UTC+2, Richard wrote:
>>>
>>> A set which you have, but your validator has wrong syntax :
>>>
>>> IS_IN_DB(db(db.ipaddress.status=='Free'),db.ipaddress.ip, '%(ip)s')
>>>
>>> free_ip_set = db(db.ipaddress.status=='Free')
>>> IS_IN_DB(free_ip_set, 'ipaddress.ip', '%(ip)s')
>>>
>>> Try this... You define the set before you server table and after the 
>>> ipaddress table..
>>>
>>> Richard
>>>
>>> On Tue, May 5, 2015 at 9:46 AM, <kecajk...@gmail.com> wrote:
>>>
>>>> Hi All, 
>>>>
>>>> I have very basic dtabasae where in one table i have IPs which are used 
>>>> in second table:
>>>>
>>>> db.define_table('ipaddress',
>>>>    Field('ip', unique=True, length=200,requires=IS_NOT_EMPTY()),
>>>>    Field('subnet', length=200, requires=IS_NOT_EMPTY() ),
>>>>    Field('status', length=200, default="Free", 
>>>> requires=IS_IN_SET(['Free','Used'])),
>>>>    format = '%(ip)s')
>>>>
>>>> db.define_table('server',
>>>>    Field('servername', length=200),
>>>>    Field('port', length=200, requires=IS_NOT_EMPTY()),
>>>>    Field('ipaddress', unique=True, length=200, 
>>>> requires=IS_IN_DB(db(db.ipaddress.status=='Free'),db.ipaddress.ip, 
>>>> '%(ip)s')),
>>>>   
>>>>
>>>> The problem i'm having is that with grid i can delete and add new 
>>>> values to "server" table and i added function which update status of IP 
>>>> for 
>>>> USED or FREE after insert/delete. 
>>>> Problem is with Update function as when i try to update server name i 
>>>> need to chose IP again and i can't chose same IP as it is marked in 
>>>> ipaddress table as USED hence it's not displayed in dropdown menu.
>>>> How can i display all IPs that are marked as FREE in ipaddress table 
>>>> AND IPs that where currently assign to the record i'm updateing in table 
>>>> server? 
>>>>
>>>> Regards.
>>>>
>>>> -- 
>>>> Resources:
>>>> - http://web2py.com
>>>> - http://web2py.com/book (Documentation)
>>>> - http://github.com/web2py/web2py (Source code)
>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>> --- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "web2py-users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to web2py+un...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  -- 
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "web2py-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to web2py+un...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to